たにちゃんまんです。
前回に続き、VBAの使い方について解説していこうと思います!
イミディエイトウィンドウ等のセットアップについてはこちらで解説してます
→【初心者向け】VBAのセットアップ方法
基本構文や変数の解説はこちら
→
イミディエイトウィンドウの使い方
イミディエイトウィンドウは、マクロの実行中に変数の値等を出力したり、マクロを実行していない時や、マクロが停止しているときに、任意の命令を実行できるウィンドウです。
”Ctrl”+”G”で表示させることもできます!
値を返さない命令の場合
では、早速使ってみましょう!
値を返さないとは、VBAからの一方通行で、エクセル側からは、何も結果を求めていない命令のことです。
イミディエイトウィンドウに、直接次のように入力してください。
Range("A1").Value = 100
Range("A2") = 200
Enterキーを押すと、Sheet1のA1セルに”100″、A2セルに”200″と表示されているはずです!
これについて少し説明。
まず、Rangeとは、セルを指定する単語です。単一セルを指定する場合はCellsでも大丈夫です。
.Valueですが、標準のプロパティと呼ばれるものになるため、省略可能になります。
標準プロパティとは、記載していない場合に○○が記載されていると勝手にみなしてくれるプロパティです。現時点では、.Value)は省略しても大丈夫なんだな、程度の理解で大丈夫です。
値を返す命令の場合
プロパティに値を返す命令の場合は、行頭に“?”をつけます。
プロジェクトウィンドウのModule1に、下記を入力してみてください。
Sub Sample1()
Dim buf As String
buf = "Excel" & "VBA"
Stop
End Sub
このマクロを実行します。実行ボタンはここ↓
すると、4行目のStopで、マクロが一時停止して、デバッグモードになります。
デバッグモードになったら、イミディエイトウィンドウに”?buf”と入力。
”Enter”キーを押すと、変数”buf”に格納されている値(ExcelVBA)が表示されます。
できましたか?
さらにもうひとつ。
デバッグモードにさせ、イミディエイトウィンドウに次のように入力してみてください。
tmp = Left(buf, 5)
MsgBox tmp
1行目で、変数”temp”に変数”buf”の左側5文字を格納しています。
そして、2行目で変数”temp”をメッセージボックスで表示させます。
変数”buf”には、”Excel VBA” という文字が格納されています。
なので、これの左側5文字である””Excel”が出力されました。
Debug.Print 命令
マクロの実行中に、任意のデータをイミディエイトウィンドウに出力させることができます。
Sample2で確認してみましょう!
Sample1を実行ボタンの隣の隣にある“■ボタン”で、マクロを停止させます。
“Enter”キーで改行し、Sample2として下記のコードを入力して下さい。
Sub Sample2()
Dim i As Long
For i = 1 To Worksheets.count
Debug.Print Worksheets(i).Name
Next
End Sub
こんなかんじ。
これは、ExcelのBookにあるSheet名をイミディエイトウィンドウに出力するマクロです。
実行すると…
Sheet名がちゃんと出力されました!
今回はここまで!!
次回はウォッチウィンドウ、呼び出し履歴の使い方についてです~