0

VBA と Word 2010 を使用するのは初めてです。

コンテンツ コントロール (つまり、リッチ テキスト コントロール) を使用するいくつかのテキスト フィールドを含む Word 文書があります。

(Title) という名前の 1 つを「testbox」として、ドキュメントが印刷された回数のカウンターにする必要があります。

動作する Excel のコードがいくつかあります。これを MS Word で使用することは可能ですか? Excel のセルではなくコンテンツ コントロールと通信するにはどうすればよいですか?

Private Sub Workbook_BeforePrint(Cancel As Boolean) 
  Cancel = True 
  Application.EnableEvents = False 
  ActiveSheet.PrintOut 
  Range("A1").Value = Range("A1").Value + 1
  Application.EnableEvents = True 
End Sub
4

1 に答える 1

0

表示するコードの基本的なアプローチは Word で機能するはずです。オブジェクト、メソッド、およびプロパティの適切な名前を検索するだけで済みます。たとえば、Document_BeforePrint と ActiveDocument.Print です。

Word には EnableEvents プロパティがないため、アプリケーション レベルで定義したイベントをオフにする独自のメソッドを作成する必要があります。これらのメソッドの外観と必要なものは、Office でアプリケーション レベルのイベントを使用する方法に関する説明の一部です - VBA 言語リファレンスの一部 ( https://msdn.microsoft.com/en-us/library/office/ff821218 .aspx )。

ContentControl は、Document.SelectContentControlsByTitle メソッドを使用してタイトルで取得できます。これは、同じ Title を持つコンテンツ コントロールの配列を返します。1つしかない場合は、次のようになります。

Dim cc As Word.ContentControl
Dim ccs as Word.ContentControls
Set ccs = ActiveDocument.SelectContentControlsByTitle("testbox")
Set cc = ccs(1)
cc.Range.Text = Cstr(CInt(cc.Range.Text) + 1)
于 2015-12-20T19:07:45.430 に答える