Word 文書にボタンを追加し、実行時にその Click イベントを割り当てる方法

概要

この記事では、Microsoft Visual Basic for Applications マクロを使用して、プログラムによって Microsoft Word ドキュメントにコントロールを追加し、そのコントロールの Click イベント ハンドラーを追加する方法について説明します。

詳細情報

次の手順は、文書にコントロールを追加し、実行時にそのコントロールの Click イベントを割り当てる Word マクロを作成する方法を示しています。 手順は Word 用です。 ただし、同じ概念を適用して、Microsoft Excel ブックのコントロールをプログラムで操作できます。

注:

実行時に Microsoft Office ドキュメントの Visual Basic プロジェクトを操作するには、Microsoft Visual Basic for Applications機能拡張ライブラリへの参照が必要です。

サンプルを作成する手順

  1. Word で新しいドキュメントを開始します。

  2. Alt キーを押しながら F11 キーを押して Visual Basic エディターに移動します。

  3. [ツール] メニューの [参照設定] をクリックします。

  4. Microsoft Visual Basic for Applications機能拡張のリファレンスを選択します。

  5. 新しいモジュールを挿入し、次のコード例を追加します。

    Sub Test()
    
    'Add a command button to a new document
    Dim doc As Word.Document
    Dim shp As Word.InlineShape
    Set doc = Documents.Add
    
    Set shp = doc.Content.InlineShapes.AddOLEControl(ClassType:="Forms.CommandButton.1")
    shp.OLEFormat.Object.Caption = "Click Here"
    
    'Add a procedure for the click event of the inlineshape
    '**Note: The click event resides in the This Document module
    Dim sCode As String
    sCode = "Private Sub " & shp.OLEFormat.Object.Name & "_Click()" & vbCrLf & _
            "   MsgBox ""You Clicked the CommandButton""" & vbCrLf & _
            "End Sub"
    doc.VBProject.VBComponents("ThisDocument").CodeModule.AddFromString sCode
    
    End Sub
    
  6. マクロ "Test" を実行します。

  7. マクロ "Test" の実行が完了すると、新しいドキュメントに新しい CommandButton コントロールが表示されます。 CommandButton コントロールをクリックすると、コントロールの Click イベントが発生します。

Word 2002 および Word 2003 の追加ノート

既定では、Word VBA プロジェクトへのアクセスは無効になっています。 無効にすると、上記のコードで実行時エラー '6068' "Visual Basic Project へのプログラムによるアクセスが信頼されていない" というエラーが生成される場合があります。このエラーとその修正方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

282830 Office VBA プロジェクトへのプログラムによるアクセスが拒否される