なぜか、マクロが動かない。。。
こんなことでお困りの方いらっしゃると思います。
今回は「マクロ」が動かない原因についてお話しします。
Excel(エクセル)の操作が苦手な方のために、操作する上でのコツをまとめたページを用意しました。
「パソコン教室パレハのLINE友達登録」(無料)で「パソコンに役立つ豪華15大特典」をお送りしております。
Excel(エクセル)の操作はもちろん、パソコンが苦手な方に役立つ特典を15個ご用意しております。
良かったら下記からご登録ください。
マクロ|VBAにおける主な2つの「デバッグ」
VBAが動かない原因を探すデバッグには、2種類の方法があります。
マクロを1行ずつ実行するステップインは、結果を直接確認できるのでコードを間違えている箇所を特定しやすいです。
任意の位置までプログラムを実行させるブレークポイントは、1行ずつコードを確認する必要がありません。
このようにデバッグの方法はそれぞれでメリットが違うので、状況に応じて使い分ければ短時間でコードのミスを発見し、速やかに修正することができます。
Excelのマクロにおいて、VBAのプログラムが思った通りに動かないことは案外ありがちです。
そんな時にはデバッグが有効で、ステップインとブレークポイントの2つを使いこなせば、原因の特定が行いやすくなります。
デバッグはVBAが動かない原因を探る為の機能ですから、覚えておいて損はないといえるでしょう。
また、イミディエイトウィンドウとウォッチウィンドウを表示しておけば、デバッグの効率が更にアップします。
前者は変数の中身をチェックするのに便利で、テストコードの確認などに役立ちます。
後者は、コードから監視したい変数をドラッグすることによって、実行中のマクロにおける変数の変化が監視できます。
マクロを1行ずつ実行させるステップイン
ステップインを使うなら、ExcelとVBAの画面を並べて表示させましょう。
最初に実行するマクロにカーソルを合わせてF8キーを押すと1行ずつ実行されますから、バグがないか確認して下さい。
もし思い通りに動かないようなら、問題の箇所を修正しもう一度正確に動作するか確かめましょう。
ステップインはF8キーでもできますが、デバッグからステップインでも可能です。
また中断するときには、実行からリセットを押すと中止できます。
ステップインはデバッグ機能の一つで、マクロを1行ずつ実行させることが可能です。
コードの実行中にエラーが出たり、最後まで動作しても思った通りの結果にならないなど、抱えている問題を確認するのが大変です。
しかし、ステップインなら1行単位の実行なので、変数の中身を確認しながらコードがチェックできます。
地道な作業は必要ですが、コードを眺めたり動作を頭の中でシミュレーションするよりは、遥かに現実的で効率の良いデバッグ作業が実現します。
任意の位置まで実行するブレークポイント
ブレークポイントでバグを探すなら、最初に設定をしましょう。
設定したい行の頭にカーソルを動かしクリックすると、黒丸が追加されます。
そして実行にあるSUB/ユーザーフォームの実行を押すと、マクロがブレークポイントまで実行されます。
実行して問題がなければ別の範囲を再設定して、バグが見つかれば修正して下さい。
設定したブレークポイントを消したいときは、黒丸をクリックすれば指定した範囲を解除することができます。
ブレークポイントは、ここまでコードを実行するという印のようなものです。
このブレークポイントを設定すると、指定の場所でプログラムが止まるので、正常に動作する範囲を確認しながらデバッグ作業が進められます。
ブレークポイントは複数個の設定が可能ですし、中断したところから再開するのも容易です。
これで中断、再開と繰り返して行くことで、動かない原因を徐々に絞り込んだり特定に近づけます。
正常に動作すると分かっている部分は普通に実行する、こう考えて使うこともできるので、活用次第で効率的に原因特定を進められるでしょう。
デバッグ時の注意点
VBAが動かない原因を探すデバッグを行うときの注意点は、カーソルを実行するマクロに合わせることです。
目的のマクロに合わせていないといつまでも実行できませんし、別の箇所に合わせていると無関係なマクロが動作する可能性もあります。
このようなことが起きると、原因がわからずに混乱するかもしれません。
ですが動作しない原因は簡単なことなので、デバッグを始めるときにはカーソルの位置を確かめましょう。
ステップインでもブレークポイントでも、カーソルの位置には注意です。
ステップインの操作もブレークポイントの設定も、実行するマクロのコード内にカーソルを移動させておくことが注意点です。
更に、無限にループするコードはデバッグでも中断できない場合があるので、実行する前に確認を済ませるのが良いでしょう。
バグの原因を特定できたと思っても、その範囲を一度に書き換えたりはせず、必ず編集前のコードを残しておき、小さな範囲で修正してから再実行するのが無難です。
コードを書き換える前の方がマシだった、という状況もデバッグでは発生しがちなので、元に戻せるようにしてけばやり直しができて安心です。
「バグ」のないプログラムを作る方法
バグが発生しても、デバッグで原因を特定し修正すれば問題ありません。
しかしデバッグや修正に時間をとられると効率が落ちるので、最初からバグのないプログラムを作ることも大切です。
キー入力をするときには確実性を重視し、一つ一つ丁寧に入力しましょう。
また面倒だと感じたり時間がないと、処理を省略してしまうこともあります。
バグがない完璧なプログラムを作ることはできませんが、丁寧な仕事をすれば減らすことは可能です。
動かない原因、バグのないプログラムの作成方法は、プログラマーなら誰もが求めているものです。
基本的には、用途が分かるように変数の名前をつけたり、小範囲毎にプログラムをテストをして確実に動くようにすることです。
似たような名前の変数は、それが複数あると混同してしまったり、用途の分かりにくさという混乱を招きバグの温床となります。
ところが、少しずつ機能を加えたり小まめなデバッグを心掛けると、プログラムが巨大になる前にバグが見つかります。
大きなプログラムに潜むバグを探すのは、余分な手間や労力を必要とするので、未然に防いだり早めに発見して修正した方が、結果としてバグが生まれにくく楽です。
Excel(エクセル)が苦手であればパソコン教室で学んでみませんか?
Excel(エクセル)はかなり奥が深く、知識を得ただけは操作が身に付きにくいものです。
そんな時には、弊社のようなパソコン教室を利用するのも一つの手です。
「オンライン」にも対応している「苦手な方専門パソコン教室パレハ」にお任せください。
オンラインというと「動画を見るだけ」とか「オンラインなんてやったことがない」というご不安があるかと思います。
ですが「苦手な方専門のパソコン教室パレハ」の「オンラインレッスン」は、動画ではなく、直接講師に質問できる生レッスンです。
生レッスンでありながらリーズナブルに学べるのが人気の秘密です。
また、苦手な方に特化しているのでパソコンが特に苦手だと言う方には最適です。
パソコンが苦手でも、オンラインできる仕組みがあります。
詳細は下記をご覧ください。
パソコンが苦手な方向けエクセル マクロ入門講座の詳細はコチラ
パソコンが苦手な方向けエクセル マクロ・VBA講座の詳細はコチラ
Excel(エクセル)の操作が苦手な方のために、操作する上でのコツをまとめたページを用意しました。
「パソコン教室パレハのLINE友達登録」(無料)で「パソコンに役立つ豪華15大特典」をお送りしております。
Excel(エクセル)の操作はもちろん、パソコンが苦手な方に役立つ特典を15個ご用意しております。
良かったら下記からご登録ください。
ココがおすすめ
パソコン教室パレハ直営校
ココがおすすめ
パソコン教室パレハグループ加盟校
下記はパレハグループ加盟校となります。
料金体制などは異なりますが、パソコン教室パレハが自信をもってご紹介できるパソコン教室です。
■ 岩出市にあるパソコン教室 「キュリオステーション 岩出店」の公式サイトはこちら
■ 愛知県名古屋市緑区にあるパソコン教室 「有松パソコン教室」の公式サイトはこちら
■ 宮崎市にあるパソコン教室Cosmarp(コスマープ)の公式サイトはこちら
全国のパソコン教室一覧(実店舗&オンライン)|パレハ直営校&グループ加盟校
ココがおすすめ
オンライン形式をご希望の方はこちら
東京・名古屋・大阪・福岡・札幌・横浜・仙台・埼玉・千葉・沖縄などで受講したい方はオンラインレッスン(Zoomを使ったオンライン個別レッスンです)をお選びください。
ココがおすすめ
パソコン教室講座一覧はこちら
他にもパソコンの講座は多数ございます。
詳しくは下記をご覧ください。
ココがおすすめ
パソコン教室に関連する情報はこちら
ココがおすすめ
パソコンの操作情報はこちら