マクロの中身を変更する
マクロの中身は「Visual Basic Editor(VBE)」を使って修正します。最初は見慣れない画面で戸惑うかもしれませんが、手順通りに進めればとても簡単ですので、挑戦してみましょう。
マクロの内容をVBAでみる
記録されているマクロを「Visual Basic Editor(VBE)」で表示します(以下、VBエディタと記述します)。
- [ツール]メニューの[マクロ]から[マクロ]を選択し、[マクロ]ダイアログボックスを表示する。
▼図03-01 [マクロ]ダイアログボックスを表示する
【Excel2007の場合】
Excel2007ではメニューバーではなく、リボンを使用します。[開発]タブが表示されている場合には、[マクロ]ボタンをクリックすると表示できます。
▼図03-02 Excel2007での[マクロ]ダイアログボックスの表示 - [マクロ名]ボックスから[OpenBook]を選択する。
- [編集]ボタンをクリックし、VBエディタを起動する。
▼図03-03 [マクロ]ダイアログボックス
以上の手順を踏んでVBエディタを開くと、マクロの内容を確認することができます。以下のリスト1は、VBエディタに表示される"OpenBook"マクロのコードです。
▼リスト1 "OpenBook"マクロのコードSub OpenBook() ' ' OpenBook Macro ' 指定顧客番号の販売履歴入力用ブックを開く ' ' ChDir "C:\顧客データ" Workbooks.Open Filename:="C:\顧客データ\1001.xls" End Sub
マクロを修正する前に、その中身を見てどこで何の動作をしているのかを確認してみましょう。
▼図03-04 マクロコードア. 「Sub...End Sub」が1つのマクロ。
イ. 「Sub」の後ろの「OpenBook」はマクロ名を表す。
ウ. [ファイルを開く]ダイアログボックスで"C:\顧客データ"フォルダに移動する操作を表す。
エ. [ファイルを開く]ダイアログボックスから"1001.xls"ファイルを開く操作を表す。
マクロの内容を変更する
今回修正するのは、開くファイル名です。「開くブックの名前をセルC4に入力した内容にする」という内容に書き換えます。リスト1の「"C:\顧客データ\1001.xls"」の「1001」を、セルC4に入力した内容を表す記述に置き換えますが、C4の内容を表す「Range("C4").Value」という記述を、ファイル名を示す文字列として認識させる必要があります。VBAの記述では「""」で囲むと、その部分は文字列として認識されます。複数の文字列同士をつなげる場合には「&」演算子を使い「1001」を「" & Range("C4").Value & "」に変更します。
Sub OpenBook() ' ' OpenBook Macro ' 指定顧客番号の販売履歴入力用ブックを開く ' ' ChDir "C:\顧客データ" Workbooks.Open Filename:="C:\顧客データ\" & Range("C4").Value & ".xls" End Sub
- 「1001」を「" & Range("C4").Value & "」に書き換える。
- [上書き保存]ボタンをクリックして保存する。
- [閉じる]ボタンを押し、VBエディタを閉じる。
▼図03-05 マクロを修正
これで修正は完了です。次のページでは、"OpenBook"マクロを実行するボタンを作成していきます。