[方法] 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 Editor に移動します。

  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 プロジェクトへのプログラムによるアクセスは信頼されていません)。 このエラーとその修正方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

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