0

MS Word 2007 で、ブックマークを参照するフィールド コードを文の途中に挿入しようとしています。フィールド コードを太字にして斜体にしたいのですが、vb を使用してフィールド コードをフォーマットすることに成功していません。

これは私が持っているもので、動作するはずですが、動作しません。

Private WithEvents wordApp As Word.Application = New Word.Application
Private doc As Word.Document = wordApp.Documents.Add()
Dim bmRange As Word.Range = Nothing
Dim s As Word.Selection = wordApp.Selection

With s
  .Style = "Normal"
  .TypeText("THIS IS THE COURSE TITLE")
  .Collapse(Word.WdCollapseDirection.wdCollapseEnd)
  .StartOf(Word.WdUnits.wdSentence, Word.WdMovementType.wdExtend)
  bmRange = .Range
  .Collapse(Word.WdCollapseDirection.wdCollapseEnd)
  .TypeParagraph()
  .Collapse(Word.WdCollapseDirection.wdCollapseEnd)
End With

doc.Bookmarks.Add("CourseTitle", bmRange)

これで、ブックマークがドキュメントの上部に設定されました。今、ドキュメントに数ページ入っているとしましょう。

s = wordApp.Selection
With s
   .Style = "Normal"
   .TypeText("This is the first part of the sentence ")
   With .Range
     .Collapse(Word.WdCollapseDirection.wdCollapseEnd)
     .Fields.Add(s.Range, Word.WdFieldType.wdFieldEmpty, "REF CourseTitle", True)
     .Font.Bold = -1
     .Font.Italic = -1
     .Collapse(Word.WdCollapseDirection.wdCollapseEnd)
     .Font.Bold = 0
     .Font.Italic = 0
   End With
   .TypeText(" this is the rest of the sentence.")
End With

これにより、フィールドコードが必要な場所に配置されますが、フォーマットされません。助言がありますか?

4

1 に答える 1

0

コードの 2 番目のチャンクから始めて、次のようにすると、おそらく必要なことが実行されます。

Dim f as Word.Field
s = wordApp.Selection
With s
   .Style = "Normal"
   .TypeText("This is the first part of the sentence ")
   With .Range
     .Collapse(Word.WdCollapseDirection.wdCollapseEnd)
     f = .Fields.Add(s.Range, Word.WdFieldType.wdFieldEmpty, "REF CourseTitle", True)
     f.Result.Bold = -1
     f.Result.Italic = -1
     .Collapse(Word.WdCollapseDirection.wdCollapseEnd)
   End With
   .TypeText(" this is the rest of the sentence.")
End With

コードでおそらく変更することは他にもあります。たとえば、コードの早い段階で Selection から Range オブジェクトを取得し、Selection オブジェクトに優先してそれを操作します。(必須ではありませんが、Word では良い習慣です)。

于 2012-08-22T09:56:58.023 に答える