「excel vba オブジェクト変数に何が入ってるか確認する方法」
という検索で、このサイト・インストラクターのネタ帳へのアクセスが、ありました。
VBAの、オブジェクト式・オブジェクト変数・オブジェクトモデルについて、まだ理解できていない方による検索でしょう。
このレベルの方であれば、VBE(Visual Basic Editor)のメニュー[表示]-[ローカルウィンドウ]から表示できる、
ローカルウィンドウを使うしかないでしょう。
ウォッチウィンドウとローカルウィンドウ
オブジェクトモデルの概要を理解できている方が、使いなれているオブジェクトに絡んだデバッグを行う場合は、ローカルウィンドウよりウォッチウィンドウが便利です。
ですが、階層関係がまだよく理解できていないようなオブジェクトについて手探りをしている段階ならば、ウォッチウィンドウよりローカルウィンドウのほうがおすすめです。
「excel vba オブジェクト変数に何が入ってるか確認する方法」
という検索をなさった方は、後者に該当するはずです。
変数の中身をローカルウィンドウで確認する
オブジェクト型変数の中身を確認する具体例をご紹介します。
まず、以下のマクロを実行してみてください。
Dim bk As Workbook
Dim bk_name As String
Set bk = ActiveWorkbook
bk_name = bk.Name
Stop
End SubStop文の行で、ステップ実行モードになりますから、ローカルウィンドウを表示して変数の中身を見てみましょう。
ローカルウィンドウを使ったことがないという方は、まず、わかりやすい(オブジェクト変数ではない)普通の変数・bk_nameのほうから確認するのがおすすめです。
ローカルウィンドウの[値]列に表示されている「Book1」が、変数・bk_nameに格納されているデータです。
ちなみに[値]列の右側[型]列には変数・bk_nameの型「String」も表示されています。
ローカルウィンドウを使うと、普通の変数の中身を、このようにとても簡単に確認することができるのです。ウォッチウィンドウのように登録の必要はありません。イミディエイトウィンドウのように「Debug.Print」というコードを追加したりする必要もありません。
オブジェクト変数の中身をローカルウィンドウで確認する
次に、オブジェクト変数・bkの中身を確認しましょう。
オブジェクト変数・bkの前には[+]が表示されています。
[+]をクリックすると、下図のような表示になるはずです。
この状態で[値]列に表示されているのが、オブジェクト変数に格納されている中身に該当します。
[値]列の左側[式]列に表示されているのが、オブジェクトが持っている一部のプロパティやメソッドです。
[値]列の右側[型]列に表示されているのが、オブジェクトのプロパティやメソッドが返す、データの型やオブジェクトの種別です。
先の普通の変数には「Book1」というデータしか持っていませんでしたが、オブジェクト変数では[値]列に表示されているようなたくさんの情報を持っているわけです。
まずは眺めることから
はじめてローカルウィンドウでオブジェクト変数の中身を確認したという方は、くれぐれも最初から、ローカルウィンドウに表示されている全てをいきなり理解しよう、などとは考えないでください。
上記の例なら、普通の変数・bk_nameに入っていたブック名が、Nameプロパティに表示されていることを、まずは確認しましょう。
それから意味のわかりやすいAuthor・FullName・Pathあたりを確認するのがおすすめです。
ご自分で作っているマクロで使われているオブジェクト変数の中身を確認する場合、そのオブジェクト変数から何らかのプロパティを利用していることが多いはずです。そのプロパティをまずはローカルウィンドウで確認してみましょう。
そして少しずつ、オブジェクト変数が格納しているオブジェクトについて、イメージを広げていくことをおすすめします。
最終更新日時:2020-02-15 09:46
Home » エクセルマクロ・Excel VBAの使い方 » オブジェクト変数の中身を確認するには-ローカルウィンドウ
- Newer:全スライドをリセットするPowerPointマクロ
- Older:全スライドを選択するPowerPointマクロ
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 インストラクターのネタ帳
- プロパティは、単なるデータを取得するプロパティと、オブジェクトを取得するプロパティに分類できます。