Home » エクセルマクロ・Excel VBAの使い方 » オブジェクト変数の中身を確認するには-ローカルウィンドウ

オブジェクト変数の中身を確認するには-ローカルウィンドウ

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

「excel vba オブジェクト変数に何が入ってるか確認する方法」
という検索で、このサイト・インストラクターのネタ帳へのアクセスが、ありました。

VBA(Visual Basic for Applications)の、オブジェクト式・オブジェクト変数・オブジェクトモデルについて、まだ理解できていない方による検索でしょう。

このレベルの方であれば、VBE(Visual Basic Editor)のメニュー[表示]-[ローカルウィンドウ]から表示できる、

VBAのオブジェクト変数の中身を確認するには

ローカルウィンドウを使うしかないでしょう。

[スポンサードリンク]

ウォッチウィンドウとローカルウィンドウ

オブジェクトモデルの概要を理解できている方が、使いなれているオブジェクトに絡んだデバッグを行う場合は、ローカルウィンドウよりウォッチウィンドウが便利です。

ですが、階層関係がまだよく理解できていないようなオブジェクトについて手探りをしている段階ならば、ウォッチウィンドウよりローカルウィンドウのほうがおすすめです。

「excel vba オブジェクト変数に何が入ってるか確認する方法」
という検索をなさった方は、後者に該当するはずです。

変数の中身をローカルウィンドウで確認する

オブジェクト型変数の中身を確認する具体例をご紹介します。

まず、以下のマクロを実行してみてください。


Sub ローカルウィンドウで変数の中身を確認する()

 Dim bk As Workbook
 Dim bk_name As String

 Set bk = ActiveWorkbook
 bk_name = bk.Name

 Stop

End Sub

Stop文の行で、ステップ実行モードになりますから、ローカルウィンドウを表示して変数の中身を見てみましょう。

VBAのオブジェクト変数の中身を確認するには

ローカルウィンドウを使ったことがないという方は、まず、わかりやすい(オブジェクト変数ではない)普通の変数・bk_nameのほうから確認するのがおすすめです。

ローカルウィンドウの[値]列に表示されている「Book1」が、変数・bk_nameに格納されているデータです。

VBAのオブジェクト変数の中身を確認するには

ちなみに[値]列の右側[型]列には変数・bk_nameの型「String」も表示されています。

VBAのオブジェクト変数の中身を確認するには

ローカルウィンドウを使うと、普通の変数の中身を、このようにとても簡単に確認することができるのです。ウォッチウィンドウのように登録の必要はありません。イミディエイトウィンドウのように「Debug.Print」というコードを追加したりする必要もありません。

オブジェクト変数の中身をローカルウィンドウで確認する

次に、オブジェクト変数・bkの中身を確認しましょう。

オブジェクト変数・bkの前には[+]が表示されています。

VBAのオブジェクト変数の中身を確認するには

[+]をクリックすると、下図のような表示になるはずです。

VBAのオブジェクト変数の中身を確認するには

この状態で[値]列に表示されているのが、オブジェクト変数に格納されている中身に該当します。

VBAのオブジェクト変数の中身を確認するには

[値]列の左側[式]列に表示されているのが、オブジェクトが持っている一部のプロパティやメソッドです。

VBAのオブジェクト変数の中身を確認するには

[値]列の右側[型]列に表示されているのが、オブジェクトのプロパティやメソッドが返す、データの型やオブジェクトの種別です。

VBAのオブジェクト変数の中身を確認するには

先の普通の変数には「Book1」というデータしか持っていませんでしたが、オブジェクト変数では[値]列に表示されているようなたくさんの情報を持っているわけです。

まずは眺めることから

はじめてローカルウィンドウでオブジェクト変数の中身を確認したという方は、くれぐれも最初から、ローカルウィンドウに表示されている全てをいきなり理解しよう、などとは考えないでください。

上記の例なら、普通の変数・bk_nameに入っていたブック名が、Nameプロパティに表示されていることを、まずは確認しましょう。

それから意味のわかりやすいAuthor・FullName・Pathあたりを確認するのがおすすめです。

ご自分で作っているマクロで使われているオブジェクト変数の中身を確認する場合、そのオブジェクト変数から何らかのプロパティを利用していることが多いはずです。そのプロパティをまずはローカルウィンドウで確認してみましょう。

そして少しずつ、オブジェクト変数が格納しているオブジェクトについて、イメージを広げていくことをおすすめします。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » オブジェクト変数の中身を確認するには-ローカルウィンドウ

TrackBack:5

TrackBack URL
オブジェクト変数がオブジェクトを参照しているかどうかを調べるには from インストラクターのネタ帳
オブジェクト変数がオブジェクトを参照しているかどうかを確認するには、オブジェクト変数がNothingかどうかを調べてください。
変数の型を調べるには?-ローカルウィンドウ・TypeName関数 from インストラクターのネタ帳
VBA(Visual Basic for Applications)のデバッグ中に変数の型を調べる場合は、VBE(Visual Basic Editor)...
ローカルウィンドウでセルの値を確認する from インストラクターのネタ帳
VBE(Visual Basic Editor)のローカルウィンドウで、セルの値を確認する方法をご紹介しています。
オブジェクト変数の型をイミディエイトウィンドウに from インストラクターのネタ帳
オブジェクト変数の型をイミディエイトウィンドウに出力するにはVBAのTypeName関数を使います。ローカルウィンドウならば何らコードを書く必要はありません。
プロパティは2種類ある from インストラクターのネタ帳
プロパティは、単なるデータを取得するプロパティと、オブジェクトを取得するプロパティに分類できます。

Home » エクセルマクロ・Excel VBAの使い方 » オブジェクト変数の中身を確認するには-ローカルウィンドウ

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


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

.