VBエディタでマクロ作成
それでは、VBエディタを起動し、標準モジュール・プロシージャを挿入しましょう。
(Excel2003以前のバージョンを使用している方は“イベント一覧.xls”、Excel2007を使用している方は“イベント一覧2007.xlsx”を使用しましょう)
- [ツール]メニューの[マクロ]から[Visual Basic Editor]を選択する。
▼ 図02-01 VBエディタを起動
【Excel2007の場合】
Excel2007ではメニューバーでなく、リボンを使用します。[マクロの記録]ボタンは[開発]タブ内に用意されています。
※ [開発]タブは既定では表示されていません。[開発]タブの表示方法はこちら▼ 図02-02 Excel2007でのVBエディタの起動 - [挿入]メニューから[標準モジュール]を選択する。
▼ 図02-03 標準モジュールの追加
- [挿入]メニューから[プロシージャ]を選択し、[プロシージャの追加]ダイアログボックスを表示する。
▼ 図02-04 プロシージャの追加
- [名前]ボックスに「AddNewData」と入力する。
- [種類]から[Subプロシージャ]を選択する。
- [適用範囲]から[Publicプロシージャ]を選択する。
- [OK]ボタンをクリックする
▼ 図02-05 [プロシージャの追加]ダイアログボックス
画面に「Public Sub AddNewData()」と「End Sub」が表示されます。この間にVBAコードを記述し、マクロを作成していきましょう。
マクロの中身を作成する
「Public Sub AddNewData」以降にプログラムを記述し、マクロを完成させていきましょう。
- 「Range("J3:P3").Select」と入力する。
※セルJ3からP3を選択するコードです。(セルJ3からP3には空白行のフォーマットが用意されています。) - 「Selection.Copy Cells(ActiveSheet.Rows.Count,2).End(xlUp).Offset(1)」と入力する。
※選択していた範囲をコピーし、データ最終行の下に貼り付けます。 - 「Cells(ActiveSheet.Rows.Count,2).End(xlUp).Select」と入力する。
※データ最終行にアクティブセルを移動します。▼ 図02-06 コードの入力
以上でコードの入力は完了です。
Hの「Selection.Copy…」の「Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Offset(1)」部分は、Excel2003以前のバージョンならば「Range("B65536").End(xlUp).Offset (1)」、Excel2007ならば「Range("B1048576").End(xlUp).Offset (1)」と指定すると、同様にデータ最終行の下に貼り付けできます。
使用するExcelのバージョンが限定されている場合には、「Rangeプロパティ」を使用して起点となるセルを指定できます。ただし、Excel2007よりワークシート内の行数・列数が変更されたため、Rangeプロパティを使用してワークシートの最終行を指定する場合は注意しましょう。
また、Endは領域内の終端セルへ移動するプロパティです。Endに続けて指定した方向の終端セルへ移動します。今回のようにワークシートの最終行から「End(xlUp)」と指定すると、上方向の終端セルへ移動します。その後、Offsetプロパティを使用して1行下のセルへ移動すると、データ最終行の次行へ移動できます。
Excel画面に戻り、マクロを実行するボタンを作成しましょう。