Excelアプリケーション (VBA Applicationオブジェクト)

Excel VBAのApplicationオブジェクトとは、Microsoft Officeアプリケーション全体を表すオブジェクトである。

Excel

Applicationオブジェクトのプロパティやメソッドは、オブジェクト修飾子を省略できる。たとえば、Application.ActiveSheetActiveSheetと記述できる。

Applicationオブジェクトのプロパティ
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オブジェクト

Application.GetOpenFilename()

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

ChartObjects

ワークシート上のすべての埋め込みグラフ(ChartObjectオブジェクト)のコレクション

埋め込みグラフのインデックス番号または名前を指定することで、単一の ChartObject を取得することができる。

ActiveSheet.ChartObjects(1).Chart.Export ThisWorkbook.Path & "\example.png"

すべての埋め込みグラフを削除する

アクティブなワークシート上のすべての埋め込みグラフを削除する。

ActiveSheet.ChartObjects.Delete

Sheet1という名前のワークシート上のすべての埋め込みグラフを削除する。

Worksheets("Sheet1").ChartObjects.Delete

Application.FormatConditions

Application.FormatConditions は、ひとつのセル範囲の条件付き書式(FormatCondition)のコレクションである。

FormatConditionsオブジェクトのメソッド
メソッド 説明
Add 新しい条件付き書式を追加する。
Dim fc As FormatConditions

Set fc = Worksheets("Sheet1").Range("A1:B2").FormatConditions.Add(xlCellValue, xlEqual, "OK")
fc.Interior.ColorIndex = 2

Application.ScreenUpdating

Application.ScreenUpdating は Excel の画面更新が有効かどうかを表すプロパティである。

Application.ScreenUpdating
説明
True 画面の更新が有効
False 画面の更新が無効

VBAマクロの実行中も、Excelの画面再描画と数式再計算は行われる。VBAマクロで大量にセルの値を変更すると、画面再描画と数式再計算の実行に時間がかかることがある。これらを止めることができる。

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

画面再描画と数式再計算を再開させるには次のようにする。

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutoMatic