2018年8月2日木曜日

【エクセルVBA】操作マクロを自動で記録する

event_note8月 02, 2018

エクセルには「マクロの記録」という機能があります。
あなたが行ったエクセル操作をマクロに置き換えてくれる便利な機能です。
作られたマクロは再実行が可能です。
簡単な操作なら、自分でマクロを作らなくても、この「マクロの記録」で自動作成ができます。

操作を記録する

  1. [開発]をクリック、[マクロの記録]ボタンを押す。
  2. [マクロ名]、[説明]には操作がわかる内容を記入。
  3. 記録したい操作をエクセル上で行う。
    例として、下の画像のように「文字の入力→コピー→貼り付け」を記録します。

記録を停止する

記録したい操作が終わったら記録を停止します。
[開発]→[記録終了]をクリックします。

作成したマクロを動かそう

マクロを動かし、出力結果を確認します。
先ほど入力した文字をエクセルシートから削除した後、以下の手順で実行します。

  1. [マクロ]をクリック
  2. 記録したマクロ(例では「コピーペースト」)を選択し[実行]をクリック。
  3. 記録した時と同じにならない場合
    下の図のように、「1」が違う場所に表示される場合は[実行]を押す直前に選択しているセルを確認してください。
    マクロを記録開始したときと同じセル(B2)が選択されているでしょうか?
    記録を開始した時のセル(B2)を選択してから[実行]を押しましょう。
    これで記録した時と同じ結果になりました。

マクロの記録 まとめ

  • [記録開始]ボタン→手動操作→[記録終了]ボタン で操作をマクロに記録できる。
  • 記録したマクロを[実行]すれば、手動操作とおなじ結果がエクセルに出力される。
  • 記録したマクロを[実行]するときはセルの選択に注意。[記録開始]の時と異なると正しく動かないことがある。

マクロ実行の時に決まったセルを選択しなければいけないのは不便ですね。どこを選択していたのかなんて覚えていられません。セルの選択位置を意識しないで実行できるように自動作成したマクロをちょっとだけ編集してみましょう。そのために、マクロがどのように組み立てられているか見ていきましょう。(次回へ続く)

補足

マクロを編集する以外に、操作開始セルを選択するタイミングを変えてやることで想定した動きをするマクロを作成することができます。

マクロ記録開始→操作開始セルを選ぶ とすればOKです。今回の例でいうと

①B2以外のセルを選択→②マクロ記録開始→③B2セルを選択→「1」を入力…の順番で操作する→④記録終了

こうすれば、開始セルを選択するところも含めてマクロで実行できます。