マクロを修正する
今回のマクロを正しく動作させるためには、毎回シートに別の名前を設定する必要があります。今回は日付と社員名を組み合わせることで、シート名の重複エラーを防ぎます。“メニュー”シートの社員名と提出日がシート名になるようマクロを修正しましょう。
VBエディタを利用して、シート名の変更部分を修正します。
- [ツール]メニューの[マクロ]から[マクロ]を選択し、[マクロ]ダイアログボックスを表示する。
※ Excel2007での[マクロ]ダイアログボックスを表示する方法はこちら▼図05-02 [マクロ]ダイアログボックスの表示 - [マクロ名]ボックスから編集したいマクロ[新精算書作成]を選択する。
- [編集]ボタンをクリックし、VBエディタを起動する。
▼図05-03 [マクロ]ダイアログボックス
VBエディタが起動し、“新精算書作成”マクロのコードが表示されました。Aのコードがマクロ記録機能で生成されたシート名を変更している部分です。この部分を修正して、セルA3+B3の内容をシート名に表示させましょう。
- “新精算書”の部分を「Sheets("メニュー").Range("A3").Value & Sheets("メニュー").Range("B3").Value」に書き換える。
▼図05-05 シート名を変更
1行のコードが長くなってしまった場合は、「 _(半角スペースとアンダーバー)」と入力して改行することができます。VBAでは長すぎるコードを見やすくするために「半角スペースとアンダーバー」を利用して改行することができます。
- VBエディタの[×]ボタンをクリックして終了する。
▼図05-06 VBエディタを終了する
再度マクロを実行してみましょう
マクロを作成したら思い通りの動作になっているかどうか、確認を行うようにしておくとよいでしょう。今回修正したマクロは、セルA3とB3に入力されているデータを利用しますので、それぞれのセルに適当なデータを入力し、マクロを実行してみましょう。
- 社員名と提出日を入力する。
※ シート名に「/」は使用できないため、「20090210」と年月日を続けて入力しています。▼図05-07 社員名と提出日を入力する - [ツール]メニューの[マクロ]から[マクロ]を選択し、[マクロ]ダイアログボックスを表示する。
▼図05-08 [マクロ]ダイアログボックスを表示
- [マクロ名]ボックスから“新精算書作成”マクロを選択する。
- [実行]ボタンをクリックする。
▼図05-09 [マクロ]ダイアログボックス
セルA3とB3の内容でシート名が変更されました。
いかがでしたか?マクロ記録でできることはExcelの基本ができていればそれほど難しくありませんが、マクロ記録だけではできないことはVBAの知識がないと急に難しくなります。今回のサンプルを繰り返し活用して、しっかりと基本をマスターしていきましょう。