私はこの短いコードを持っています
Public n As Integer
Public Sub Foo()
For i = 0 To 4
MyModule.n = MyModule.n + 1
Next i
End Sub
これは、という名前のモジュールで定義されていMyModule
ます。このコードは期待どおりに機能しています。初めて実行した後の「MyModule.n」の値は5です。2回目の実行後の値は10になります。
コードを拡張してCommandButtonを追加し、それを作業シートに配置すると、グローバル変数は次MyModule.n
の新しい呼び出しごとにその値を失いますFoo
。
Public n As Integer
Public Sub Foo()
Dim btn As OLEObject
For i = 0 To 4
Set btn = Worksheets("Aufträge").OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Left:=122, Top:=321, Width:=30, Height:=30)
MyModule.n = MyModule.n + 1
Next i
End Sub
コマンドボタンが正しく作成および配置されているため、コードは機能しているようです。2番目のコードフラグメントを実行すると、グローバル変数がリセットされるのはなぜですか?
さらに、2番目のコードフラグメントのForループの後または内部にブレークポイントを配置することはできません。メッセージが表示されますCan't enter break mode at this time
。