ステップ実行で、1行ずつ順番に実行
記録したマクロを実行したり、修正した時に、それがきちんと動作するか、一行ずつ確認するのが、ステップ実行です。
Excel 2013 マクロ講座11回
マクロの記録とステップ実行
マクロの記録の実習からはじめます。
サンプルファイルを開いたら、マクロの記録の実習をしましょう。
手順1.見積書シートをコピーする
手順2.コピーしたシート上の入力エリアをクリアする
(サンプルファイルは、こちらから 2013マクロ講座11回サンプルデータ)
Excelバージョン:
マクロの記録を開始
マクロの記録を開始します。
マクロ名をつけて、説明も記入しておきましょう。
はじめに、見積書シートを選択してコピーします。
コピーしたシートの入力部分をクリアします。
マクロの記録を終了します。
VBEを開いて、できたコードを見てみましょう。
コードを1行づつ実行してみる。
ステップ実行とは、コードを1行づつ実行することです。
マクロとExcelのウィンドウを並べて1行づつ実行すると、どのコードがどんなことをするのかを確認することができます。
今回は、コードを1行づつ実行してみましょう。
マクロ内にカーソルを置いて、F8キーを押すとステップ実行することができます。
マクロとExcelのウィンドウを並べて1行づつ実行すると、どのコードがどんなことをするのかを確認することができます。
今回は、コードを1行づつ実行してみましょう。
マクロ内にカーソルを置いて、F8キーを押すとステップ実行することができます。
Range("B2:B3,A8:A13,D8:D13").Select
Range("D8").Activate
Selection.ClearContents
のコードですが、
マクロの記録では、D8セルをアクティブにしたことになっていますが、この行は不要です。
すると、以下のようになります。
Range("B2:B3,A8:A13,D8:D13").Select
Selection.ClearContents
さらにこのコードも選択して、選択にたいして、クリアにするという周りくどい記述になっています。
1行にまとめることができます。
Range("B2:B3,A8:A13,D8:D13").ClearContents
Range("D8").Activate
Selection.ClearContents
のコードですが、
マクロの記録では、D8セルをアクティブにしたことになっていますが、この行は不要です。
すると、以下のようになります。
Range("B2:B3,A8:A13,D8:D13").Select
Selection.ClearContents
さらにこのコードも選択して、選択にたいして、クリアにするという周りくどい記述になっています。
1行にまとめることができます。
Range("B2:B3,A8:A13,D8:D13").ClearContents
Sub 見積書作成() ' ' 見積書をコピーしてクリアし新規見積書を作る ' Sheets("見積書").Select Sheets("見積書").Copy Before:=Sheets(1) Range("B2:B3,A8:A13,D8:D13").ClearContents Range("D2").Select End Sub
コードをコピーしてプログラムを書く
ステップ実行が終わったら、このコードを元に、修正とちょと書き足して 手を加えて行きます。
何をするかというと、伝票ナンバーを前の番号にプラス1して、連番になるようにします。
また、日付を本日の日付に変更します。
また、日付を本日の日付に変更します。