マクロの動きが分からない時はステップインを使おう
・ エクセルマクロの自動記録をやってみたものの「どう動いているのかさっぱりわからない」
・ 実行ボタンをおしても動作が一瞬すぎてなにがどうなっているのかよく理解できない
・ 本やWEBのコードを真似して書いてみたものの「なんでこうなるのかわからない」
とお困りではないでしょうか。
そんなときはマクロを1行ずつ実行してくれる「 ステップイン 」機能を使いましょう。
上記で悩んでいる方にとっては、この機能を知ることだけでも すごい収穫 かもしれません。
私はこの機能を知ったことにより、マクロの動作を理解することができたと思っています。
「最初に知っておけばこんなに悩むことなんかなかったのに!」
と一番感じた機能です。
ステップインを使ってみよう
使い方はとても簡単です。
実行したいマクロのコードにカーソルを合わせて(置いて)F8(ファンクションキー)を押すだけです。
画像のようにSUB(マクロ名)の部分が黄色になれば成功です。
上記の画像は実際に自動記録した(セルA1をコピー、シート2のセルB1へペーストしただけ)ものです。
黄色になったところが「これからここを実行するよ」というサイン です。
F8をもう一度押すと、黄色の部分が下に進んだと思います。
いまやったことは「SUB(題名)を読んだ」ということになり、「今度やることは黄色の部分ですよ」ということになります。
この機能を使うことでどのようにマクロが動いているのかわかると思います。本やWEBを参照したコードでも試してみると、いい勉強になるのでやってみてください。
※ 下のようなマクロ選択画面が出てきた場合は、該当するマクロにカーソルがあたっていないので、いったんエスケープ(ESCキー)して対象マクロ部分でクリックしましょう。
ステップインに類似した他の機能
ブレークポイント
本やWEBを参照したコードでステップインを使って動きを見る場合に、
「確認したい場所までめちゃくちゃ長い」
「ループ処理があってなかなか進まない」
など、1行ずつ進むことが難しい(煩わしい)場合もあると思います。
そんなときは、目的の場所までいっきに実行できる(設定した箇所でマクロを一時中断できる)、「 ブレークポイント 」という機能があります。
これも使い方は簡単で、中断したいコードの部分にカーソルをあてて、F9を押すだけで設定できます。
(コード部分が茶色になればOK)
その状態でF5ボタン(実行ボタン)を押すと、ブレークポイントを設定したところでマクロが止まります。
(ステップインと同じく、”次にここやるよ〜”という黄色のサインがでます)。
そこからF8を押せばマクロの続きを1行ずつみることができます。
※ 再度F5ボタンを押せば、また何事もなかったかのようにマクロが再開されます。
※ 設定したブレークポイントで止まってくれないといった予想外のことも起こり得ます。
このケースは「設定したブレークポイントの部分をマクロが辿っていない」ということになります。
要因として考えられるのは、IFなどの条件分岐によりマクロがそこを通らずに次へ行っているなどでしょうか。
なにかおかしいなと思ったら、その手前でブレークポイントを設定して確認してみるのも一つの手です。マクロは基本的に上から順に動いてくるのでいろいろと工夫してみましょう。
ステップインで戻したり、先へ進めたりすることもできます。
ステップインを行った状態での黄色のサインは黄色の矢印をドラッグ&ドロップすることで任意の場所へ動かすこともできます。
ステップイン機能を使いながらマクロの記述を変更したりしたときに「これだったらどうかな?」などお試し用に使ったりもします。
ステップイン機能を覚えるだけでも相当な理解につながると思います。
このマクロって、どんな動きするのかな?想像つかないな、などある場合は是非使ってください。