[ホーム] - [Windows 10 FAQ 一覧] - [Excel の VBAの処理をシートに記録する]



作成日:2017/05/14
更新日:2017/05/23
対象:Windows 10

Excel の VBAの処理をシートに記録する





Excel の vba でプログラムを行っていると、特にセルのループ処理などで思う通りに動かず原因判明に苦慮することがあるでしょう。
デバッグ出来ればよいのですが、ブロックすることが出来ず原因が良く分からない場合があります。あるいはブレイクできてもその断面の情報しか分からずどのような分岐点でその処理を行ってしまったのか分からない場合もあります。

そんな場合は処理のところどころに、状況を記録する処理を追加しておけば良いでしょう。
別の"log"というログ専用のシートを作成し、動作記録を追加していくイメージです。



そして以下のような関数を作成します。
これは "log" シートの i 行目にstr という文字を記録するという関数です。

Function loggerfunc(str, i)
Sheets("log").Cells(i, 1) = str
loggerfunc = i + 1
End Function


そして main 処理で以下のこの関数をコールします。
これは処理の時点での変数 i を log シートに記録する処理です。

logcocunter = loggerfunc("i=" & str(i), logcocunter)

このように処理を記録していくことでプログラミング、デバッグの効率が向上します。
logcocunterは記録する列であるため、main 処理の先頭で logcocunter = 1 と初期化が必須です。







(ご注意) 本サイト内の内容を使用して発生したいかなる時間的損害、金銭的損害あるいはいかなる損害に対して、いかなる人物も一切の責任を負いません。あくまでも個人の判断で使用してください。 本ページは独自に調査をしたアンオフィシャル(非公式)な内容です。内容に誤りがある可能性や仕様変更により内容が不正確になる可能性があります。 本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)


Copyright(c) TOOLJP.COM 1999-2022

[Windows 10 FAQ 一覧に戻る]