Home » ExcelVBA Rangeオブジェクト » ローカルウィンドウでセルの値を確認する

ローカルウィンドウでセルの値を確認する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「vba ローカルウィンドウにセル値を表示させたい」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

VBE(Visual Basic Editor)のローカルウィンドウで、セルの値を確認するには、どうすればいいのかを探していらした方による検索キーワードです。

ローカルウィンドウに表示されるのはステップ実行中

まず、ローカルウィンドウにデータが表示されるのは、ステップ実行中だということをおさえておきましょう。

コード内にDebug.Printステートメントを書いた場合は、実行後にイミディエイトウィンドウでデータを確認できますが、ローカルウィンドウで変数内のデータを確認できるのは、あくまでもステップ実行中です。

ステップ実行を行うには、ツールバーやメニューバーからの操作よりも、ショートカットキー[F8]が便利です。

[スポンサードリンク]

ローカルウィンドウには変数が表示される

ローカルウィンドウに表示されるのは、変数です。
Sub samp_1()
 Dim tmp As Variant
 Dim obj As Object
 Dim arr(3) As String
End Sub

上記のSubプロシージャをステップ実行すると、実行行(黄色表示になっている行)が、Subステートメントにある時点(プロシージャが実行されていない状態)で、下図のように、ローカルウィンドウに変数の中身が表示されるようになります。

ローカルウィンドウでセルの値を確認する

ちなみに上記の状態は、変数に代入を行う前ですから、すべての変数で初期値が表示されています。

変数とみなされるものもローカルウィンドウに表示される

変数とみなされるものも、ローカルウィンドウには表示されます。
通常はOption Explicitステートメントをモジュールの先頭に書いて、変数を必ず宣言するはずですが、Option Explicitステートメントが書かれていない場合には、Dimキーワードを使って宣言をしなくても、変数とみなされてしまいます。
そのような変数とみなされたものも、ローカルウィンドウに表示されます。

Option Explicitステートメントをコメントアウトしてから、以下のSubプロシージャをステップ実行してみてください。
Sub samp_2()
 Dim num As Long
 nun = InputBox("整数を入力してください。")
End Sub

上記のプロシージャは、整数を代入するつもりで変数「num」をLong型で宣言していたにも拘わらず、Option Explicitステートメントがないために、タイプミスをして「nun」と間違えて入力してしまったという状況を仮定してください。

下図のように、明示的に宣言した変数・numも、タイプミスを行って変数とみなされてしまったnunもローカルウィンドウに表示されます。

ローカルウィンドウでセルの値を確認する

ローカルウィンドウでセルの値を確認する

で、ローカルウィンドウでセルの値を確認するなら、一旦、セルの値を変数に代入して、ステップ実行すればOKです。
Sub samp_3()
 Dim val As Variant
 val = Range("A1").Value
End Sub

例えばA1セルに適当にデータを入力しておいて、上記のプロシージャをステップ実行すると、ステップ実行を開始時点で下図のような状態になり、

ローカルウィンドウでセルの値を確認する

変数にセルの値を代入する、
  val = Range("A1").Value
の行が実行されたときにA1セルに「12345」という数値が入っていれば、下図のようになります。

ローカルウィンドウでセルの値を確認する

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » ローカルウィンドウでセルの値を確認する

「ExcelVBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.