「vba ローカルウィンドウにセル値を表示させたい」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
VBE(Visual Basic Editor)のローカルウィンドウで、セルの値を確認するには、どうすればいいのかを探していらした方による検索キーワードです。
ローカルウィンドウに表示されるのはステップ実行中
まず、ローカルウィンドウにデータが表示されるのは、ステップ実行中だということをおさえておきましょう。
コード内にDebug.Printステートメントを書いた場合は、実行後にイミディエイトウィンドウでデータを確認できますが、ローカルウィンドウで変数内のデータを確認できるのは、あくまでもステップ実行中です。
ステップ実行を行うには、ツールバーやメニューバーからの操作よりも、ショートカットキー[F8]が便利です。
ローカルウィンドウには変数が表示される
ローカルウィンドウに表示されるのは、変数です。Dim tmp As Variant
Dim obj As Object
Dim arr(3) As String
End Sub
上記のSubプロシージャをステップ実行すると、実行行(黄色表示になっている行)が、Subステートメントにある時点(プロシージャが実行されていない状態)で、下図のように、ローカルウィンドウに変数の中身が表示されるようになります。
ちなみに上記の状態は、変数に代入を行う前ですから、すべての変数で初期値が表示されています。
変数とみなされるものもローカルウィンドウに表示される
変数とみなされるものも、ローカルウィンドウには表示されます。
通常はOption Explicitステートメントをモジュールの先頭に書いて、変数を必ず宣言するはずですが、Option Explicitステートメントが書かれていない場合には、Dimキーワードを使って宣言をしなくても、変数とみなされてしまいます。
そのような変数とみなされたものも、ローカルウィンドウに表示されます。
Dim num As Long
nun = InputBox("整数を入力してください。")
End Sub
上記のプロシージャは、整数を代入するつもりで変数「num」をLong型で宣言していたにも拘わらず、Option Explicitステートメントがないために、タイプミスをして「nun」と間違えて入力してしまったという状況を仮定してください。
下図のように、明示的に宣言した変数・numも、タイプミスを行って変数とみなされてしまったnunもローカルウィンドウに表示されます。
ローカルウィンドウでセルの値を確認する
で、ローカルウィンドウでセルの値を確認するなら、一旦、セルの値を変数に代入して、ステップ実行すればOKです。Dim val As Variant
val = Range("A1").Value
End Sub
例えばA1セルに適当にデータを入力しておいて、上記のプロシージャをステップ実行すると、ステップ実行を開始時点で下図のような状態になり、
変数にセルの値を代入する、
val = Range("A1").Value
の行が実行されたときにA1セルに「12345」という数値が入っていれば、下図のようになります。
- Newer:VBAでアウトラインレベルを取得する
- Older:Rangeを使って取り消し線を引く
Home » Excel VBA Rangeオブジェクト » ローカルウィンドウでセルの値を確認する