マクロの中身を変更する
マクロの中身は「Visual Basic Editor(VBエディタ)」を使って修正します。最初は戸惑うかもしれませんが、手順通りに進めればとても簡単ですので、挑戦してみましょう。
マクロの内容をVBAでみる
記録されているマクロを「Visual Basic Editor(VBエディタ)」で表示します。
- [ツール]メニューの[マクロ]から[マクロ]を選択し、[マクロ]ダイアログボックスを表示する。
▼ 図04-01 [マクロ]ダイアログボックスの表示
【Excel2007の場合】
Excel2007ではメニューバーではなく、リボンを使用します。[開発]タブが表示されている場合には、[マクロ]ボタンをクリックすると表示できます。
▼ 図04-02 Excel2007での[マクロ]ダイアログボックスの表示 - [マクロ名]の一覧から[Print1]を選択する。
- [編集]ボタンをクリックすると、VBエディタが起動する。
▼ 図04-03 [マクロ]ダイアログボックス
以上の手順を踏んでVBエディタを開くと、マクロの内容を確認することができます。以下のリスト1はVBエディタに表示される“Print1”マクロのコードです。この後ろには“Print2”〜“Print5”マクロのコードが続きます。
▼ リスト1 “Print1”マクロのコードSub Print1() ' ' Print1 Macro ' 日報1週目を印刷する ' ' Range("A6:E33").Select Selection.PrintOut Copies:=1, Preview:=True, Collate:=True End Sub
マクロを修正する前に、どこで何の動作をしているのかを確認してみましょう。
▼ 図04-04 マクロコードア. 「Sub...End Sub」が1つのマクロ。
イ. 「Sub」の後ろの「Print1」は、マクロ名を表す。
ウ. セル範囲「A6からE33」を選択する。
エ. 選択した範囲を印刷プレビュー表示。「Preview := True」が印刷プレビュー表示を表す。
【Excel2007の場合】
Excel2007では選択した範囲を印刷プレビューで表示するマクロは、以下のリスト2のように記録されます。
▼ リスト2 Excel2007での“Print1”マクロのコードSub Print1() ' ' Print1 Macro ' 日報1週目を印刷する ' ' Range("A6:E33").Select ExecuteExcel4Macro "PRINT(1,,,1,,TRUE,,,,,,1,,,TRUE,,FALSE)" End Sub
選択した範囲を印刷プレビューで表示するコードがExcel2003以前のバージョンとは異なります。
▼ 図04-05 Excel2007でのマクロコードExcel2007ではExecuteExcel4Macroメソッドが使用されます。ExecuteExcel4Macroメソッドは、Excel 4.0マクロ関数を実行し、関数の結果を返すメソッドです。以前のバージョンとの互換性を保つ際などに使用されます。6番目の引数の「TRUE」が印刷プレビュー表示、12番目の引数の「1」が選択範囲の表示を指定しています。
このように、マクロ記録時の操作はほぼそのままVBAに変換されて出力されています。では、“Print1”マクロの中身を変更していきます。
マクロの内容を変更する
今回修正するのは、印刷するセル範囲です。1日4行が5行に増えたため、1週間では7行増えたことになります。その行数分を印刷範囲に加算すれば完成です。
- 「A6:E33」という記述を「A6:E40」に書き換える。
▼ 図04-06 マクロを修正
- [上書き保存]ボタンをクリックして修正内容を保存する。
- 右上の[×]ボタンをクリックするか、[ファイル]メニューから[終了してMicrosoft Excelに戻る]を選択してVBエディタの画面を閉じる。
▼ 図04-07 Excelに戻る
Excelに戻ったら、先ほど修正した“Print1”マクロを実行してみましょう。
- 「1週目」ボタンをクリックする。
▼ 図04-08 マクロを実行
- 確認したら[閉じる]ボタンをクリックする。
▼ 図04-09 実行結果
マクロがうまく動かない場合は、上記のリスト1を参考に、もう一度VBエディタを開いて記述を確認してみましょう。 更に、他のマクロも同様の方法で変更してみてください。
マクロの中身をもう少し詳しく理解するために、VBAの基本用語を理解しておきましょう。
オブジェクト | 操作をする対象。例えば、シートやセル、図形など。今回のマクロで使用しているオブジェクトはセル(Range)。 |
メソッド | オブジェクトに対する操作。今回はセルを「選択する(Select)」「印刷する(PrintOut)」がメソッドにあたる。 |
VBAはマイクロソフトオフィス製品に搭載されているプログラム言語です。VBAをマスターすれば、マクロを本格的なシステムのように作り変えることもできます。今回はその第一歩です。
VBAを編集するにはエクセル画面ではない、VBエディタという特別なツールを使うこと、また、VBAにどのような形でマクロが変換されるのか、ということを覚えましょう。また、「マクロ記録」→「マクロの中身の修正」でVBAのプログラムコードやVBエディタの操作に慣れていくようにしましょう。