2018年8月3日金曜日

【エクセルVBA】マクロを一行ずつ実行

event_note8月 03, 2018

マクロがどんな風に動くか知るために、自動作成したマクロの中身を見てみましょう。

マクロを見ていく前に、マクロを実行する方法をマスターしましょう。

[開発]タブのからVisualBasic  を起動して確認していきます。

VisualBasicを起動する

  1. [開発]タブ→[VisualBasic]をクリック

  2. [標準モジュール]→[ModuleXX]をダブルクリック(XXは数字)。マクロが表示されます。

マクロを確認するのに便利なキー

一行ずつマクロを実行(F8)

F8を押すと1行ずつマクロを実行していきます。具体例でみていきましょう。

  1. sub マクロ名()~End Subの任意の場所をクリック

    例では上の画像③マクロが表示されるの赤枠内です。

  2. F8キーを押すと黄色でマクロ名が選択されます。

  3. F8を押すたびに1行ずつ処理を実行します。

    下記の状態でF8を押すと、黄色の行が実行されて、セルに1が出力されます。

  4. さらにF8を押していき、End Subを実行するとマクロは終了です。

一気に実行(F5)

F5を押すと黄色で選択されている行以降をまとめて実行します。

途中で実行を止める(F9)

途中で処理を中断したい行を指定できます。F5と合わせ使うと便利です。

一気に実行(F5)、途中で実行を止める(F9)の操作例

使用例を具体的に説明しますね。画像は左にマクロ、右にエクセルの出力結果を表示しています。

  1. 中断したい行でF9を押す。目印として●が左側に表示され、行の色が変わります。

  2. マクロ内の任意の位置をクリックし、F5をクリックしてマクロを実行します。

  3. ●印で処理が中断されます。

  4. F8を押すと、1行だけ実行します。

  5. その後F5を押すと、残りの行を一気に実行。マクロを終了します。

こうすれば、必要な行だけ動作を確認することができるので便利です。

マクロの処理解説(概要)

自動作成したマクロの内容を解説します。まずは、流れがわかる程度にざっくりと説明。詳細は今後じっくり別の機会に説明します。

  • ActiveCell.FormulaR1C1 = “1”選択しているエクセルのセルに「1」を出力します。
  • Range(“B3”).SelectB3のセルを選択します。
  • Range(“B2:B6”).SelectB2~B6を選択します。2.では、1つのセルでしたが、こちらは複数セルを選択している状態です。
  • Selection.Copy選択しているセル(Selection)をコピー(Copy)します。
  • ActiveSheet.Paste選択しているシート(の選択しているセル)にコピーした内容を貼り付けます。

以上の列名(B3のB)、行名(B3の3)や値(”1″)などがことなる場合は読み替えてやればどのような処理を実行しているかわかると思います。

このマクロは、こんな処理になります。

①選択しているセルに1を入力
②B3セルを選択し、2を入力
③B4セルを選択し、3を入力
④B5セルを選択し、4を入力
⑤B6セルを選択し、5を入力
⑥B2~B6までを選択し、コピー
⑦D2セルを選択し、貼り付け

 

 

 

 

まあそうでしょう…。そのように記録したマクロなので。しかし、マクロと自分でした操作がどのように紐づいているかわかるようにあえて書いてみました。

マクロを一行ずつ実行 まとめ

  • [開発]タブ→VisualBasicを開いてマクロを確認できる
  • F8キー:1行ずつ実行/F5キー:一気に実行/F9キー:実行を途中で停止 をつかうとマクロを理解するのに便利

マクロを記録したけど、たくさん行数があり何をやっているかわからない…というときは、エクセルの出力結果を見ながら1行ずつ実行していくとマクロを理解しやすいです。いろんなマクロを記録して中を覗いてみてください。