Excel VBAのApplicationオブジェクトとは、Microsoft Officeアプリケーション全体を表すオブジェクトである。
Applicationオブジェクトのプロパティやメソッドは、オブジェクト修飾子を省略できる。たとえば、Application.ActiveSheet
はActiveSheet
と記述できる。
Property | Type | Description |
---|---|---|
ActiveSheet | Object | 作業中のブック、及び指定されたウィンドウ又はブックのアクティブシート(1番手前のシート) |
ActiveWindow | Window | アクティブなウィンドウ(1番手前にあるウィンドウ)への参照 |
ActiveWorkbook | Workbook | アクティブ(1番前に表示されている)ウィンドウ内にあるブック |
ScreenUpdating | Boolean | 画面描画を行うかどうか |
Sheets | Sheets | アクティブなブック内の各シートへの参照を含むSheetオブジェクトのコレクション |
ThisWorkbook | Workbook | 現在実行中のマクロコードが記述されているブック |
Workbooks | Workbooks | 開かれているすべてのブックを表すWorkbooksコレクション |
Worksheets | Sheets | 作業中のブックのすべてのワークシートを表すSheetsコレクション |
WorksheetFunction | WorksheetFunction | WorksheetFunctionオブジェクト |
VBAマクロでMicrosoft Officeのファイルを開くには、ApplicationオブジェクトのGetOpenFilenameメソッドを呼び出す。
Microsoft Excelから「ファイルを開く」ダイアログボックスを開く例を次に示す。
Dim filename As String
filename = Application.GetOpenFilename("Excel ブック,*.xlsx")
If filename <> "False" Then
Workbooks.Open filename
Else
Exit Sub
End If
ワークシート上のすべての埋め込みグラフ(ChartObjectオブジェクト)のコレクション
埋め込みグラフのインデックス番号または名前を指定することで、単一の ChartObject を取得することができる。
ActiveSheet.ChartObjects(1).Chart.Export ThisWorkbook.Path & "\example.png"
アクティブなワークシート上のすべての埋め込みグラフを削除する。
ActiveSheet.ChartObjects.Delete
Sheet1という名前のワークシート上のすべての埋め込みグラフを削除する。
Worksheets("Sheet1").ChartObjects.Delete
Application.FormatConditions は、ひとつのセル範囲の条件付き書式(FormatCondition)のコレクションである。
メソッド | 説明 |
---|---|
Add | 新しい条件付き書式を追加する。 |
Dim fc As FormatConditions
Set fc = Worksheets("Sheet1").Range("A1:B2").FormatConditions.Add(xlCellValue, xlEqual, "OK")
fc.Interior.ColorIndex = 2
Application.ScreenUpdating は Excel の画面更新が有効かどうかを表すプロパティである。
値 | 説明 |
---|---|
True | 画面の更新が有効 |
False | 画面の更新が無効 |
VBAマクロの実行中も、Excelの画面再描画と数式再計算は行われる。VBAマクロで大量にセルの値を変更すると、画面再描画と数式再計算の実行に時間がかかることがある。これらを止めることができる。
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
画面再描画と数式再計算を再開させるには次のようにする。
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutoMatic