この記事では、ワードマクロでVBEを使って新しくマクロをゼロから作る手順を説明します。
マクロを新規作成する方法
ここでは、全く新しい文書を作って、その中にマクロを作ってみます。
ワード文書を新規作成
まずは、ワードを開いて、ワード文書を新規作成してください。
起動したときの画面や、「ファイル」メニューの「新規」から、「白紙の文書」をクリックすると作成できます。
VBEを開く
次に、Visual Basic Editorを開きます。
「開発」メニューの「コード」グループの「Visual Basic」ボタンをクリックするか、
キーボードの 「Alt」 +「F11」をクリックすると、VBEが起動します。
標準モジュールの作成
VBEのプロジェクトエクスプローラーを見てください。
Project(文書 1)というのが、対象のプロジェクト(=文書)になります。
まだ、新しい文書で「マクロの記録」も行なっていないため、ツリーに「標準モジュール」がありません。
そのため、まずはマクロを記述する標準モジュールを作ります。
Project(文書 1) を右クリックして、「挿入」→「標準モジュール」とクリックすると、「Module1」という名前の標準モジュールが作成されます。
このとき、コードウィンドウに、Module1が表示されます。
もし、自動で表示されていない場合、プロジェクトエクスプローラーで今追加した「Module1」をダブルクリックして、コードウィンドウに表示させてください。
Subプロシージャの作成
ここからは、コードウィンドウで作業していきます。
ワードや他のワード製品ののマクロの本体はVBAです。
マクロはサブルーチンと呼ばれる処理の単位ごとに処理を記述していきます。
この処理をプロシージャとも呼びます。
サブルーチンは、Sub で始まり、End Sub まで続きます。
つまり、
1 2 3 |
Sub サブルーチンの名前() から End Sub |
の間にプロシージャの内容をVBAで記述していきます。
今から、アクティブ文書のカーソル位置に 「新規作成したマクロ!」という文字列を挿入するマクロを作ってみましょう。
サブルーチンの名前は 「myFirstMacro」 とします。
コードウィンドウで、
1 |
Sub myFirstMacro |
と打ち込んでEnterキーを押してください。
すると、
のように、中かっこ()と End Sub の文字が自動で挿入され、間の行にカーソルが移動します。
VBEにはこのように、コーディング(プログラムを書くこと)の負担を減らすような仕掛けがちょこちょこありますよ。
さて、次に、サブルーチンの中に、
1 |
Selection.TypeText "新規作成したマクロ!" |
と入力してみましょう。
Selectionの前にはスペースを2つ入れてみましょう。インデントするといいますが、こうすることでプログラム構造がわかりやすくなります。
下図のような状態になります。
コードの意味は、まだ分からなくて大丈夫です。
実行してみましょう
せっかくマクロを書いたので実行してみましょう。
カーソルを、Sub myFirstMacro サブルーチン中のどこかに合わせてください。
その状態で「Sub/ユーザフォームの実行」をクリックすると、サブルーチンが実行されます。
もし、サブルーチン myFirstMacroの外にカーソルをあわせていた場合
(例えばSubの上のOption Explicit の行など)、下図のように実行可能なサブルーチンの一覧が別ウィンドウで表示されます。
その場合は、実行したいサブルーチン名(=マクロ名)を選択して「実行」をクリックしてください。
上記のマクロを実行したら、ワードファイルに「新規作成したマクロ!」の文字列が挿入されます。
マクロの削除
ここでは、マクロを削除する方法、また、モジュールを削除する方法を解説します。
不要になったときだけでなく、プログラム構造を変えるときに、マクロを記述する場所を変更するときにも、削除は必要です。
不要なコードや、モジュールを残したままにすると、だんだん、可読性の悪いコードになってしまいますので、注意してください。
マクロの削除の方法1
マクロのみ削除する場合、Sub サブルーチン名() から End Sub までを削除してください。
マウスやShiftキー+カーソルキーで範囲を選択し、「Del」キーで削除できます。
マクロの削除方法2
ワードからマクロを削除する事もできます。
- 「開発」メニューの「マクロ」ボタンを押して、
- 「マクロ」ウィンドウで削除したいマクロ名を選択し、
- 「削除」ボタンをクリック
- 削除の確認ウィンドウで「はい」をクリック
の手順で削除することができます。
モジュールごと削除
サブルーチンを削除しても、モジュールが残っています。モジュールごときれいに消すには、VBEのプロジェクトエクスプローラーから削除したいモジュールを右クリックして、「Module名の開放」を選択します。
削除前に、エクスポート(別ファイルに内容を保存)するか聞かれます。エクスポートしておけば、必要なプロジェクトにマクロを移植したり、間違えて消してしまったときは復元することができます。
しかし、今は特にエクスポート不要なので「いいえ」をクリックします。
これで、Module1が痕跡なく削除されました。
コメント