1.1 マクロを使ってみよう
Microsoft Excelのマクロを使い、VBAエディタの操作を学びます。
1.1.1 マクロを使う準備
マクロを操作するメニューは「開発」タブにありますが、インストール直後は表示されていません。「開発」タブを表示するようにExcelのオプション設定を変更します。
- Office ボタンをクリックし、「Excel のオプション」をクリックします。
図1.1.1-1
- 「基本設定」にある「Excel の仕様に関する基本オプション」欄の「「開発」タブをリボンに表示する」にチェックを入れ、「OK」ボタンをクリックします。
図1.1.1-2
- メニューリボンに「開発」タブが追加されます。
図1.1.1-3
- 「開発」タブには、マクロ(命令の集まり)やフォーム(プログラムがデータを受け取るための入力画面)を作成するためのツールとXML関連機能が表示されます。
図1.1.1-4
マクロを実行しようとしても、Excelのセキュリティ機能が働いてマクロが無効にされることがあります。そのようなときは、以下を確認してください。
- Office ボタンをクリックし、「Excel のオプション」から「セキュリティセンター」、「セキュリティセンターの設定」と進みます。
図1.1.1-5
図1.1.1-6
- 「警告を表示してすべてのマクロを無効にする」を、選びます。これは既定の設定です。マクロを無効にし、マクロが含まれている場合にセキュリティの警告を表示する場合は、このオプションをクリックします。この方法では、状況に応じてマクロを有効にすることを選択できます。
図1.1.1-7
図1.1.1-8
1.1.2 マクロの記録
セルA1を黄色で塗りつぶす命令を記録してみましょう。
- セルA1を選んでおき、「開発」タブから「マクロの記録」をクリックします。
図1.1.2-1
- マクロ名には、あらかじめMacro1と入力されています。ここでは、そのまま「OK」をクリックします。
図1.1.2-2
- マクロの記録が始まり、「マクロの記録」ボタンが「記録終了」に変わりました。
図1.1.2-3
- [ホーム]タブに移動して、セルA1を黄色で塗りつぶします。
図1.1.2-4
- 「開発」タブに移動して、「記録終了」をクリックします。
図1.1.2-5
1.1.3 マクロの表示
一覧からマクロを選択して、実行、編集、削除などの操作ができます。
- 「開発」タブの「マクロ」ボタンをクリックすると、マクロの一覧が表示されます。
図1.1.3-1
- 「マクロ名」に「1.2 マクロの記録」で保存したマクロMacro1が表示されています。
図1.1.3-2
- 「編集」ボタンをクリックするとVisual Basic Ecitorが起動し、Macro1のソースコードが表示されます。
図1.1.3-3
- 左側がプロジェクトエクスプローラです。標準モジュールの下に「Module1」というモジュールができています。この中に「Macro1」という関数が作られました。
- 右側がコードです。「Macro1」のコードが表示されています。Sub Macro1()が関数の開始、End Subが関数の終わりを示します。
- 「’(アポストロフィ)」から後ろはコメントです。行の途中からコメントを始めることもできます(インラインコメント)。
- With Selection.Interior から End With までは、選択された範囲の書式(プロパティ)を指定している箇所です。
- 右上の「質問を入力してください」の欄に「.Interior.Color」などと入力すると、プロパティの意味や使い方を調べられます。それぞれのプロパティの意味を調べてみましょう。
- 左上のExcelのマーク「表示 Microsoft Excel」をクリックすると、Excelの画面に戻れます。
- 図1.1.3-1で「開発」タブの「Visual Basic」ボタンをクリックしても、Visual Basic Editorが起動します。
1.1.4 マクロの実行
「1.3 マクロの記録」で作成した「Macro1」を実行してみましょう。
- [ホーム]タブを開き、セルB2をクリックして選択します。
- 「開発」タブを開いて「マクロ」ボタンをクリックします。
- マクロの一覧から「Macro1」を選択し、「実行」ボタンをクリックします。
図1.1.4-1a
- セルB2が黄色で塗られました。
「Visual Vasic Editor」の実行ボタンからも実行できます。
- 「Sub」と「End Sub」の間に文字カーソルを置きます。
- ツールバーの実行ボタンをクリックします。
図1.1.4-1b
図1.1.4-1bのように、Editorのウインドウを小さめにし、最大化したExcelウィンドウの上に重ねておいて実行すると分かりやすいでしょう。
1.1.5 マクロの練習
マクロの記録と実行を練習してみましょう。次の操作を行い、記録されたマクロ「Macro2」と1.2で記録したマクロ「Macro1」を比較してみましょう。
- マクロの記録を開始します。「開発」タブ
- セルC3を選択して、黄色で塗りつぶします。[ホーム]タブ
- 記録終了。「開発」タブ
- 「マクロ」ボタンをクリックして、「Macro2」のソースコードをエディタで開く。「開発」タブ
図1.1.5-1
- 右上の関数名を選ぶと「Macro1」と「Macro2」のソースコードの先頭へ表示を切り替えられます。
図1.5-2
「Macro2」で追加されたコードについて、「Visual Vasic Editor」の右上にある「質問を入力してください」欄を利用して調べてみましょう。
図1.1.5-3
例えば、「.Color」と入力して「Enter」キーを押すと以下のように候補が別のウィンドウに表示されます。
図1.1.5-4
ここでは、「Selection.Interior」の中で使っている「.Color」について知りたいので「Interior.Color プロパティ」をクリックすると、どうやら、選択したセル(Selection)には、Interiorというオブジェクトが付属していて、Colorプロパティという値が設定できるということのようです。
オブジェクトやプロパティという用語は分かりにくいと思いますが、後の章で簡単なのもをプログラミングしてみたいと思います。実際にオブジェクトやプロパティを扱ってみると少しは理解の助けになるでしょう。
1.1.6 マクロの編集
「1.5 練習」で作成した「Macro2」を編集して、実行してみましょう。
- 「Macro2」のコードを表示します。
図1.1.6-1
- 「Range("C3").Select」の"C3"を"D4"に修正して、「Macro2」を実行してみましょう。
- セルD4が黄色で塗られました。
図1.1.6-3
1.1.7 インポートとエクスポート
ここまでの手順で、モジュール「Module1」の中にマクロ「Macro1」と「Macro2」ができました。モジュールは「エクスポート」してエクセルのブックとは別に保存しておくことができます。また、保存しておいたモジュールをエクセルに「インポート」して、エクセルと一緒に保存することもできます。
ここでは、エクスポートの手順を紹介します。
- Visual Basic Editor の「プロジェクトエクスプローラ」の標準モジュールから「Module1」を選択しておき、「ファイル」メニューから「エクスポート」を選びます。
図1.1.7-1
- 「ファイルのエクスポート」ダイアログが開きます。「保存する場所」と「ファイル名」を指定して、「保存」ボタンを押します。
図1.1.7-2
インポートも同様にして行えます。
1.1.8 他のブックのマクロ
ブック「Book1」の中に作ったマクロ「Macro1」や「Macro2」は、別に開いたブック「Book2」などからも呼出し、「Book2」に対して実行できます。その手順を紹介します。
- マクロ「Macro1」を作成したブック「Book1」を開いたまま、新しいブックを開きます。
図1.1.8-1
- もちろん、既存のブックを開いてもかまいません。新しいブックの名前は仮に「Book2」などと付けられます。
図1.1.8-2
- 開いたブック「Book2」の「開発」タブから「マクロ」ボタンをクリックし「マクロ」ダイアログを開きます。「マクロ名」は、「Book1!Macro1」という形でブック名も付けて表示されます。
実行したいマクロを選択して「実行」ボタンをクリックします。
図1.1.8-3
実行したいマクロの名前が見つからない場合は、「マクロの保存先」が「開いているすべてのブック」になっているか、実行したいマクロを作ったブック「Book1」になっているか確認してください。
- 「Book1!Macro1」を実行すると、「Book2」で選択していたセルが、「Book1!Macro2」を実行すると、「Book2」のセルD4が黄色で塗られるか、確かめてください。
1.1.9 ボタンで呼び出す
マクロを実行する方法は、これまで2つ紹介しました。
- 「開発」タブから「マクロ」をクリックして実行したいマクロを指定する。
- VBA エディタから実行したいマクロを選んでおき、実行する。
開発中に使うには問題ありませんが、開発を終了して一般の人に使ってもらうには少し面倒です。一般の人にも使いやすい方法はいくつかありますが、ここではExcelのシートにボタンを配置して呼び出す方法を紹介します。
- ブック「Book1」の「開発」タブの「挿入」ボタンから「フォームコントロール」の「ボタン」をクリックします。
図1.1.9-1
- ブック「Book1」のシートの上にマウスカーソルを持ってゆくとカーソルの形が+に変わります。ボタンを置きたい場所をドラッグして指定します。
図1.1.9-2
- 「マクロの登録」ダイアログが開きます。ボタンをクリックしたときに呼び出したいマクロ「Macro1」を選び、「OK」ボタンを押します。
図1.1.9-3
- シート上にボタンが置かれました。クリックするとマクロが実行されます。選んだセルが黄色で塗られるか確かめてください。
図1.1.9-4