VBA
1<標準モジュール(モジュール名:「md_sample」)> 2Public Const gCNS_SH01_概要 As String = "概要" 3
VBA
1<シートモジュール(シート名:「概要」,オブジェクト名:「SH01_概要」)> 2Sub sample() 3 MsgBox Worksheets(gCNS_SH01_概要).Cells(1,1).Value 4End Sub
上のシートモジュールのWorksheets関数の呼び出しで、「インデックスが有効範囲にありません」エラーが出たり出なかったりします。
これはVBAのどのような仕様かわかる方いらっしゃいますでしょうか。
(参考)
・エラーが出た場合は、「Worksheets(gCNS_SH01_概要)」の部分をウォッチ式で確認して「Worksheets("概要")」と直した後、「Worksheets(gCNS_SH01_概要)」に戻すと変数でも正常に動くようになります。
そして時間がたつと、また同じエラーが出るようになります。
・シート名を「概要」から変更したり、定数の値を変更したりはしていません。
省略した部分はこちらで補わなければなりません。つまりコードの悪い部分を上書きして正しく動くものをこちらで作ることになります。つまり問題を発見できなくなります。問題の再現する最小のコードを作り、こちらで確認できるようにしてください。