0

Word 2010 のテンプレートがあります。上部にボタンがあり、Word ドキュメントを (ほぼ) 正しい名前の pdf として自動的に正しいディレクトリに保存し、ドキュメントを開きます。

月を選択するためのドロップダウン フォーム フィールドもあります。

ここに画像の説明を入力

ボタンのコード:

Private Sub CommandButton1_Click()
    Convert_PDF
End Sub


Sub Convert_PDF()

    Dim desktoploc As String
    Dim filename As String
    Dim date As String
    Dim user As String
    Dim mypath As String

    desktoploc = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    filename = "Installs Team Metrics"
    user = VBA.Environ("USERNAME")
    mypath = desktoploc & "\Metrics\" & filename & " - " & date & " - " & user

    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        mypath, _
        ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
End Sub

これにより、ファイルが C:\Users[username]\Desktop\Metrics\Installs Team Metrics - [Month] - [username].pdf に出力されます。

ドロップダウンボックスで選択されたものを文字列「日付」に取得するにはどうすればよいですか。

4

1 に答える 1

0

従来のフィールドではなくコンテンツ コントロールのように見えるため、必要になります

Activedocument.Contentcontrols(i).Range.Text

ここで、i はインデックス番号です。コントロールの (ドキュメントの最初のものは 1 など)

したがって、番号を知る必要があるか、コントロールを識別するためにコントロールのタイトルまたはタグ (またはその他のもの) を使用する必要があります。コンテンツ コントロールの場合、コレクションを反復して検索する必要があります。

Dim cc As ContentControl
For Each cc in ActiveDocument.ContentControls
  If cc.Tag = "mytag" Then
    strDate = cc.Range.Text
    Exit For
  End If
Next

コントロールにタイトル/タグを付ける方法に注意してください。Word は、タイトルまたはタグの一意性を強制しません。

これを行う別の方法は、"Date" 要素を含むカスタム XML パーツを作成し、xPath を使用してコントロールをそれに接続することです。次に、カスタム XML 部分から値を直接取得できます。コントロール自体について何も知る必要はありません。しかし、私はあなたがしなくてもよい複雑さを追加する単純な形で考えています.

于 2013-05-10T10:58:50.310 に答える