Excel VBA の開発やデバッグ作業を行う際、イミディエイト ウィンドウを活用すると、Excel のデータやシート情報を手軽に取得・操作できます。Debug.Print
を使ってExcel のセルの値を確認し、直接 VBA コードを実行して Excel の動作を行うことも可能です。
この記事では、イミディエイトウィンドウを活用して Excel のデータを操作する方法と実践的な活用例を解説します。
目次
イミディエイトウィンドウとは?
イミディエイト ウィンドウとは、VBA の開発環境(VBE)でExcel のデータを確認し、コードを手動で実行できるウィンドウです。
主な用途
✅Debug.Print
を使ってExcelのセルの値を確認
✅? 変数名
を入力して最新値を取得
✅ 1行のVBAコードを実行しExcelを操作
✅ シート名や最終行などExcelの情報を取得
📌イミディエイトウィンドウを使うと、Excelのデータをすぐにチェックできるので、デバッグ作業が効率化!
イミディエイトウィンドウの表示方法
イミディエイトウィンドウが表示されていない場合は、次の方法で開きます。
ショートカットキーで開く
Ctrl + G
✅最速でイミディエイトウィンドウを開く方法!
ボタンを押す
- Excelで「Alt + F11」キーを押してVBAエディタ(VBE)を開く
- 「表示」メニューをクリック
- 「イミディエイトウィンドウ(イミディエイトウィンドウ)」を選択
✅これでイミディエイトウィンドウが表示される!
イミディエイトウィンドウでExcelの情報を取得する
・セルを表示する
イミディエイト ウィンドウでアクティブなセルの値を確認できます。
? ActiveCell.Value
✅最新のアクティブセルの価値をすぐに取得!
・指定セルの値を取得
? Range("A1").Value
✅セルA1
を確認してください!
・アクティブシートの名前を取得
【VBA】アクティブシートの指定・変更・シート名取得・値参照
? ActiveSheet.Name
✅最新のアクティブシートの名前を表示!
・すべてのシート名を取得
For Each ws In Worksheets: Debug.Print ws.Name: Next
✅ブック内のすべてのシート名が一覧表示!
・ワークブックの名前を取得
? ActiveWorkbook.Name
✅最新のワークブックの名前を取得しました!
イミディエイトウィンドウを使ってExcelを操作する
イミディエイトウィンドウでは、VBAのコードを1行ずつ手動で実行し、Excelを操作できます。
・セルに値を入力する
Range("A1").Value = "テスト"
✅セル A1 に「テスト」と入力!
・セルカラーを変更する
Range("A1").Interior.Color = RGB(255, 255, 0)
✅セルA1の背景色を黄色に変更!
・アクティブシートの名前を変更
【VBA】アクティブシートの指定・変更・シート名取得・値参照
ActiveSheet.Name = "新しいシート"
✅最新のシート名を「新しいシート」に変更しました!
・ワークシートを追加
Sheets.Add
✅新しいワークシートを追加!
・ワークブックを保存
【VBA】ダイアログで名前を付けて保存・同じフォルダに保存する方法
ActiveWorkbook.Save
✅最新のブックを保存!
Debug.Printを活用したExcelデータの出力
・シート上のデータをイミディエイトウィンドウに出力
Sub ShowSheetData()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim i As Integer
For i = 1 To 10
Debug.Print "A" & i & " : " & ws.Cells(i, 1).Value
Next i
End Sub
✅シートのA1~A10の値をイミディエイトウィンドウに出力!
・最終行を表示する
Sub GetLastRow()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Debug.Print "最終行: " & lastRow
End Sub
✅シートの最終行程を表示!
・全てのシート名を出力
Sub ListAllSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
Debug.Print ws.Name
Next ws
End Sub
✅ブック内のすべてのシート名を一覧表示!
・フィルターの結果を取得
【VBA】フィルター機能【複数条件・複数列フィルター】の操作設定
Sub ShowFilteredData()
Dim cell As Range
For Each cell In Range("A1:A100").SpecialCells(xlCellTypeVisible)
Debug.Print cell.Value
Next cell
End Sub
✅オートフィルターで表示されているデータのみを取得!
まとめ
💡イミディエイトウィンドウでExcelを活用する方法
✅ショートカットキー(Ctrl + G)で開いて
✅Debug.Print
を使って Excel の情報を取得
✅ 1 行の VBA コードを手動で実行して Excel を操作
✅ワークシートのデータをイミディエイト ウィンドウに出力
イミディエイトウィンドウのメリット
メリット | 説明 |
---|---|
デバッグが簡単 | Debug.Print を使って変数やセルの値を確認できる |
即時実行可能 | 1行のVBAコードを手動で実行してExcelを操作できる |
修正不要 | MsgBox を使わずにデバッグできるため、コードを書き換える必要なし |
Excelのデータを簡単に取得 | ? Range("A1").Value セルの価値を即時取得 |