Excel VBA

[ExcelVBA] マクロの問題が起きた場合の修正方法

2020年3月4日

 

本記事はエクセル2019で動作確認をしています。

記述されているコードは、ご自身で実際入力することで理解が早まります。

 

困ってます
マクロの動きを一つずつ確認したいです。どのような方法があるか教えてほしい。

 

本記事はこのような疑問にお答えします。

 

サイト運営者であるロンピー(@ronpeee0809)はExcelVBAを使用して現役で会社の業務改善を行っています。

これからVBAを学ぶ方がスムーズに学習を進められる手助けをしていきます。

 

VBA開発をはじめると、エラーやデバック(プログラムの誤り)にぶつかることはしょっちゅう起こります。

 

問題箇所を見つける方法を知っておき、すばやくメンテナンスできるようにしていく必要があります。

 

今回は標準モジュールを動かしながら、VBA開発を行うのに欠かせない

ステップイン

ブレイクポイント

エラーの見方

の解説をしていきます。

 

 

Excel VBAのステップイン方法

 

ステップインとは

マクロの内容を1行ずつ実行する方法

です。

 

普通に実行を開始すると、記述したコードは最後まで動いてしまいます。

ステップインを使うと問題を修正後、確認するのに1行ずつコードが動くので大変便利です。

 

ステップイン方法を見ていきましょう。

ステップインは3つの方法で実行できます。

・「F8」キー

・VBEの「表示」>「ツールバー」>「デバッグ」>「デバッグ」>「ステップイン」

・VBEの「デバッグ」>「ステップイン」

 

「F8」が一番使いやすいので、この後の解説は「F8」に統一します。

 

動かし方は

  1. 実行したいプロシージャ内をクリックすると、そのプロシージャが選択されます。
  2. 「F8」をクリックすると、文字が黄色くなります。
  3. 「F8」クリックを繰りかえすと1行ずつコードが動きます。

 

試しに標準モジュールに以下のコードを入力してください。

Sub step_in()

  Range(“A1”)=“テスト1”
  Range(“A2”)=“テスト2”
  Range(“A3”)=“テスト3”

End Sub

 

うまく動きましたか?

もう一点確認してほしいことがあります。

1行目を動かした後、Range(“A1“)の上にカーソルを置いてみて下さい。

「Range(“A1”)=“テスト1”」という文字が表示されませんか?

これは、Range(“A1“)にテスト1が代入されましたという証拠です。

正しい動きかはこのような確認方法もありますので覚えておきましょう。

 

 

ExcelVBAのブレイクポイントの使い方

 

ブレイクポイントとは

一定の場所までマクロを一気に飛ばす方法

です。

 

マクロで問題が起きたときに、ここまでは絶対正しいから飛ばしたい。という場面があります。

ブレイクポイントを設定することで、問題がありそうな場所まで一気に移動しそこからステップインしながら問題解決をしていきます。

 

ブレイクポイントの使い方を見ていきましょう。

 

 

コード横の余白で止めたい位置をクリックしてみましょう。

赤い丸がついたはずです。

この赤丸がブレイクポイントになるので、コードを実行するとここまで自動的に動くことになります。

解除の仕方はもう一度赤丸をクリックすることで解除できます。

 

 

エラーの種類

 

エラーの原因はスペルミスや文法の記述ミスなど様々です。

エラーの種類を知っておくことで、問題の解決方法を考えることができます。

 

実行時エラー

 

 

 

このような表示が出ると、実行中に何かエラーが起きたことを示します。

「デバッグ」ボタンを押すと、エラー位置が黄色に表示されます。

正しい内容に修正し、実行してください。

今回の場合は、正解はsheet1と記述するところを「e」が一つ足りなかったため、そのようなシートはありませんと判断したからです。

 

コンパイルエラー

 

 

スペルミスや文法間違いがあれば、コンパイルエラーが発生します。

間違った場所が赤くなるので、「OK」ボタンを押した後、正しく記述しなおして下さい。

また、実行時にもコンパイルエラーは表示されることがあります。

この場合も「OK」を押し、正しく記述しましょう。

 

まとめ

 

今回は

ステップイン

ブレイクポイント

エラー表示

について見てきました。

 

ExcelVBA開発をするのにデバッグなどのエラーはつきものです。

問題が出来るだけ起きないようにしっかり打合せしても、必ず修正は通る道です。

問題がおきたら、慌てず修正し、コードを1つずつ動かしながら確認するという方法を覚えておいてください。

 

最後まで目を通していただきありがとうございました。

-Excel VBA
-

Copyright© Ronpeee blog , 2023 All Rights Reserved.