2017-09-12 10 views
0

WordのDocument Propertiesの下に作成されたカスタムフィールド(ProtocolNumber)を追加のテキストを含む表のセルに挿入しようとしています。この場合、Fields.Add関数をどのように使用するかについてはあまりよく分かりません。申し訳ありませんが、質問が基本的ですが、私はVBAの完全なハッカーです。Word文書のプロパティから追加のテキストを含む表のセルにフィールドを挿入する

NoOfCol = 5 
    Set tblNew = ActiveDocument.Tables.Add(Selection.Range, 9, NoOfCol, 
       wdAutoFitWindow) 
    With tblNew 
     .PreferredWidthType = wdPreferredWidthPercent 
     .PreferredWidth = 100 
     .Columns(1).PreferredWidth = 100 * NoOfCol * 3/(NoOfCol + 1) 
    End With 
    tblNew.Borders.InsideLineStyle = wdLineStyleSingle 
    tblNew.Borders.OutsideLineStyle = wdLineStyleSingle 
    tblNew.Cell(Row:=1, Column:=1).Merge _ 
    MergeTo:=tblNew.Cell(Row:=1, Column:=NoOfCol) 
    tblNew.Cell(1, 1).Split NumColumns:=2 
    tblNew.Cell(1, 1).Range.Text = "PROTOCOL: [ProtocolNumber]" & vbCrLf & "DRUG/INDICATION: 
    : 
    : 
+0

あなたは、あなたが何をしようとしているのかをもう少し詳しく説明したいと思うでしょう。あなたは正確にフィールドを追加しようとしていますか? – braX

答えて

0

これはあなたが探しているコードです。

Dim Rng As Range 
Dim PropName As String 

Set Rng = tblNew,Cell(1, 1).Range 
Rng.Collapse wdCollapseStart  ' insert field at start of cell 
PropName = "Protocol number"  ' Custom document property by this name must exist 
Rng.Fields.Add Range:=Rng, _ 
       Type:=wdFieldEmpty, _ 
       Text:="DOCPROPERTY """ & PropName & """", _ 
       PreserveFormatting:=True 

水平結合を実行した後でWordがテーブルの列にアクセスできないことに注意してください。同様に、セルが縦方向にマージされると、行にアクセスする機能が失われます。一言で言えば、テーブル内のセルをマージするのは良い考えではありません。絶対に行う必要がある場合は、セルへのアクセスが完了した後に行う必要があります。

関連する問題