Home » エクセルマクロ・Excel VBAの使い方 » 配列 » 配列をウォッチウィンドウで確認する

配列をウォッチウィンドウで確認する

対象:Visual Basic Editor

配列をウォッチウィンドウで確認する

「vba ウォッチ式 配列」
「vba ウォッチウィンドウ 配列」
という検索キーワードを元に、VBE(Visual Basic Editor)のデバッグ用ツールでは、ウォッチウィンドウやイミディエイトウィンドウより、ローカルウィンドウのほうが初心者向けであることをご紹介しました。

確かに要素数が多くない配列の場合はローカルウィンドウで十分ですが、たくさんの要素を持った配列の、特に最後のほうの要素の中身を確認するような場合、ウォッチウィンドウのほうが便利なケースが出てきます。

[スポンサードリンク]

要素数の多い配列変数を使ったサンプルマクロ

以下のようなプロシージャで、配列変数・arrの、1,000番目や999番目の中身を確認するケースを考えてみます。


Sub 配列の中身をウォッチウィンドウで確認する()

 Dim arr(1 To 1000) As String

 arr(999) = "を"
 arr(1000) = "ん"
 Stop

End Sub

ローカルウィンドウを使って最後のほうの要素を確認するには、ローカルウィンドウ内を下のほうまでスクロールする必要があります。

配列をウォッチウィンドウで確認する

ローカルウィンドウ内にカーソルをおいて、[End]キーを押せば一番下までスクロールすることはできますが、デバッグ中にこの作業を何度も行うのは、やはり面倒なものです。

このような場合にはウォッチウィンドウのほうが便利です。

ウォッチウィンドウで配列を確認する

上記のマクロで、配列変数の1,000番目の要素の中身を確認するなら、以下のようにウォッチ式を追加します。


▼操作概要:配列の特定の要素の中身をウォッチウィンドウで確認する
※配列・arrのインデックス番号・1000の要素の中身を確認する例
[ウォッチ式の追加]ダイアログ-[式]欄に
「arr(1000)」と入力して[OK]ボタンを押す

配列をウォッチウィンドウで確認する

上記のウォッチ式を追加しておいて、ウォッチウィンドウを表示すると1,000番目の要素だけを確認できます。

配列をウォッチウィンドウで確認する

999番目の要素の中身を確認したいのなら、「arr(999)」をウォッチ式に追加です。

直値を指定せずに最後の要素を確認するウォッチ式

動的配列の場合に、インデックス番号・添え字を直接数値で指定することができない、というケースもあります。

その場合は「arr(UBound(arr))」をウォッチ式に追加してください。

配列をウォッチウィンドウで確認する

UBoundは、引数に指定された配列変数の、添字・インデックス番号の最大値を返す関数です。

そのUBound関数で取得した配列のインデックス番号の最大値が、配列の添字として指定されているのが、「arr(UBound(arr))」という式です。

最後の要素ではなく、その一つ前の要素をウォッチ式で確認したいのなら「arr(UBound(arr) - 1)」をウォッチ式に追加です。

ウォッチ式がわからない場合はプロシージャで理解しましょう

ここで登場する「arr(UBound(arr))」は、マクロ内・プロシージャ内で登場する式と同じです。

配列の全要素に対して処理を行う際の、
  For i = LBound(arr) to UBound(arr)
   MsgBox arr(i)
  Next i
といったループ文の中で登場する「arr(i)」という式で、変数・iの代わりに、配列のインデックス・添字の最大値を返すUBound関数を使った「UBound(arr)」が指定されているのが「arr(UBound(arr))」です。

ですから「arr(UBound(arr))」という式を、プロシージャの中で書けないレベルの方が、ウォッチ式としてこの式を書くことは現実的には不可能なのです。

「arr(UBound(arr))」というウォッチ式の意味がピンとこないという方は、以下のプロシージャを変数・nの値に注目しながらステップ実行して考えてみてください。


Sub UBound関数()

 Dim arr(1 To 1000) As String
 Dim n As Long

 arr(999) = "を"
 arr(1000) = "ん"

 n = UBound(arr)
 MsgBox arr(n)
 MsgBox arr(n - 1)

End Sub

上記プロシージャの「arr(n)」が、先のウォッチ式「arr(UBound(arr))」と同じ意味です。ウォッチ式としての「arr(UBound(arr))」をそのまま理解するよりも、プロシージャの中で分解して考えるほうが、理解が容易になるはずです。

関連語句
VBA, Visual Basic for Applications
[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 配列 » 配列をウォッチウィンドウで確認する

TrackBack:1

TrackBack URL
ウォッチウィンドウでセルの値を確認する from インストラクターのネタ帳
VBEのウォッチウィンドウでセルの値を確認する方法をご紹介しています。

Home » エクセルマクロ・Excel VBAの使い方 » 配列 » 配列をウォッチウィンドウで確認する

「配列」の記事一覧

検索


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

.