「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あたりを確認するのがおすすめです。
ご自分で作っているマクロで使われているオブジェクト変数の中身を確認する場合、そのオブジェクト変数から何らかのプロパティを利用していることが多いはずです。そのプロパティをまずはローカルウィンドウで確認してみましょう。
そして少しずつ、オブジェクト変数が格納しているオブジェクトについて、イメージを広げていくことをおすすめします。
最終更新日時:2022-01-26 05:39
- Newer:全スライドをリセットするPowerPointマクロ
- Older:全スライドを選択するPowerPointマクロ
Home » エクセルマクロ・Excel VBAの使い方 » オブジェクト変数の中身を確認するには-ローカルウィンドウ