ExcelVBAでマクロを組んでいると、「プロパティ」という言葉を頻繁に目にします。
たとえば「Range.Value」「Workbook.Name」「Sheet.Visible」など、VBAのほとんどの操作はこの「プロパティ」を通して行われます。
しかし初心者のうちは、プロパティとメソッドの違いが曖昧で、
「どこまでがプロパティ?」「何を設定できるの?」と迷うことが多いものです。
この記事では、VBAのプロパティの意味と代表的な一覧・実務での使い方をわかりやすく解説します。
最後まで読めば、プロパティの考え方が整理でき、実務マクロの可読性と保守性を一気に高められるようになります。
目次
- ✅ VBAにおける「プロパティ」とは?
- ・プロパティとメソッドの違い
- ✅ よく使う主要プロパティ一覧(カテゴリー別)
- 【1】Range(セル・範囲)オブジェクトのプロパティ
- 【2】Worksheet(シート)オブジェクトのプロパティ
- 【3】Workbook(ブック)オブジェクトのプロパティ
- 【4】Application(Excelアプリ全体)プロパティ
- 【5】Chart(グラフ)オブジェクトのプロパティ
- ✅ プロパティの取得と設定の基本構文
- ・取得(Get)
- ・設定(Set)
- ✅ プロパティを活用した実務サンプル
- ・セルの背景色と文字色を一括変更
- ・非表示シートの確認と再表示
- ・ブックの自動保存チェック
- ✅ よくある混乱ポイント:プロパティかメソッドか分からないとき
- ✅ 実務でプロパティを使いこなすコツ
- ・「.」ドットでつながる関係を意識する
- ・IntelliSense(入力候補)を活用する
- ・プロパティの階層を調べるには「オブジェクトブラウザ」
- ■ まとめ:VBAのプロパティを理解すれば自動化の自由度が一気に上がる
✅ VBAにおける「プロパティ」とは?
VBAにおけるプロパティとは、オブジェクトの「属性(性質)」を取得・設定するための要素です。
Excelの世界では、あらゆるもの(セル、シート、ブック、グラフなど)が「オブジェクト」として扱われ、
それぞれに「名前」「値」「状態」などのプロパティを持っています。
たとえば次のような例を見てみましょう。
Range("A1").Value = "テスト"
この場合、
- 「Range("A1")」はセルオブジェクト
- 「Value」はそのセルの値を表すプロパティ
つまり、プロパティを通して「セルA1の値」という情報にアクセスしているわけです。
・プロパティとメソッドの違い
種類 | 役割 | 例 |
---|---|---|
プロパティ | 値や状態を取得・設定する | Range("A1").Value, Sheet.Name |
メソッド | 動作を実行する | Range("A1").Copy, Sheet.Delete |
✅ プロパティ → “何を持っているか”
✅ メソッド → “何をするか”
この違いを理解するだけで、VBAのコードは格段に読みやすくなります。
✅ よく使う主要プロパティ一覧(カテゴリー別)
プロパティは膨大にありますが、日常業務でよく使うものをオブジェクト別に整理しました。
まずはこの一覧を理解することから始めましょう。
【1】Range(セル・範囲)オブジェクトのプロパティ
セルや範囲を操作するときに最も多用するのが「Range」オブジェクトのプロパティです。
プロパティ名 | 説明 | 使用例 |
---|---|---|
Value | セルの値を取得・設定 | Range("A1").Value = 100 |
Formula | 数式を取得・設定 | Range("B1").Formula = "=SUM(A1:A3)" |
Address | セルのアドレスを返す | MsgBox Range("B3").Address |
Font | フォント情報を表すオブジェクト | Range("A1").Font.Bold = True |
Interior | 背景色を設定するオブジェクト | Range("A1").Interior.Color = vbYellow |
NumberFormat | 表示形式を設定 | Range("A1").NumberFormat = "0.00" |
Row / Column | 行番号・列番号を取得 | MsgBox Range("C5").Column |
EntireRow / EntireColumn | 行全体・列全体を取得 | Range("A1").EntireRow.Hidden = True |
💡ポイント:
- Valueは最も基本的なプロパティ。
- FontやInteriorなど、さらに下層のプロパティを持つ「オブジェクト型プロパティ」もあります。
- Format関連を覚えておくと、見栄えを整える処理が簡単になります。参考:【VBA】Range型の使い方|セル範囲を自在に操作する基本と応用テクニック
【2】Worksheet(シート)オブジェクトのプロパティ
シート全体を操作するときに使う代表的なプロパティです。
プロパティ名 | 説明 | 使用例 |
---|---|---|
Name | シート名を取得・設定 | Sheets(1).Name = "集計表" |
Visible | 表示・非表示を設定 | Sheets("Sheet2").Visible = xlSheetVeryHidden |
Cells | セル全体を表すオブジェクト | Sheets(1).Cells(1, 1).Value = "A1" |
UsedRange | 使用済み範囲を取得 | MsgBox Sheets(1).UsedRange.Address |
ProtectContents | シートが保護されているかを確認 | If Sheet1.ProtectContents Then MsgBox "保護中" |
⚙ 補足:
Visible
の設定値は次の3種類があります。
xlSheetVisible
(表示)xlSheetHidden
(通常の非表示)xlSheetVeryHidden
(VBE上でしか再表示できない非表示)
実務では機密シートの隠蔽などでVeryHiddenをよく使います。
参考:【VBA】Worksheet.Activate が実行されない原因と解決方法
【3】Workbook(ブック)オブジェクトのプロパティ
ブック全体の状態を操作するプロパティです。
プロパティ名 | 説明 | 使用例 |
---|---|---|
Name | ブック名を取得 | MsgBox ThisWorkbook.Name |
FullName | ファイルパスを含めた名前 | MsgBox ThisWorkbook.FullName |
Path | 保存場所のパスを取得 | MsgBox ThisWorkbook.Path |
ReadOnly | 読み取り専用かどうか | If ThisWorkbook.ReadOnly Then MsgBox "読み取り専用です" |
Saved | 保存済みかどうか | If Not ThisWorkbook.Saved Then ThisWorkbook.Save |
Sheets | シートコレクションを参照 | For Each ws In ThisWorkbook.Sheets: Debug.Print ws.Name: Next |
💡実務での使い方:
「ファイルの自動保存」や「バックアップ作成」などで頻繁に使われます。
Path
とName
を組み合わせれば、現在のファイルパスを取得して別名保存も可能です。
参考:【VBA】ファイルを選択して開く方法|Application.GetOpenFilenameとWorkbooks.Openの実践例
【4】Application(Excelアプリ全体)プロパティ
Excelのアプリケーション全体を制御するプロパティです。
プロパティ名 | 説明 | 使用例 |
---|---|---|
ScreenUpdating | 画面更新のON/OFF | Application.ScreenUpdating = False |
Calculation | 再計算モードを設定 | Application.Calculation = xlCalculationManual |
DisplayAlerts | 確認ダイアログの表示設定 | Application.DisplayAlerts = False |
StatusBar | ステータスバーにメッセージ表示 | Application.StatusBar = "処理中..." |
Version | Excelのバージョン番号 | MsgBox Application.Version |
ActiveWorkbook / ActiveSheet | 現在操作中のブック・シート | MsgBox ActiveSheet.Name |
⚙ 実務のポイント:
長時間の処理を行う際は、
Application.ScreenUpdating = False
Application.DisplayAlerts = False
をセットで使うのが定番です。
動作速度が上がり、意図しないダイアログ停止も防げます。
参考:【VBA】Application.ScreenUpdatingプロパティの使用方法と特徴
【5】Chart(グラフ)オブジェクトのプロパティ
グラフを自動生成・更新する際に使う代表的なプロパティです。
プロパティ名 | 説明 | 使用例 |
---|---|---|
ChartType | グラフの種類を指定 | ActiveChart.ChartType = xlColumnClustered |
HasTitle | タイトルの有無を設定 | ActiveChart.HasTitle = True |
ChartTitle.Text | タイトル名を設定 | ActiveChart.ChartTitle.Text = "売上推移" |
SeriesCollection | データ系列を参照 | ActiveChart.SeriesCollection(1).Name = "2025年度" |
Legend | 凡例の表示を制御 | ActiveChart.Legend.Position = xlLegendPositionBottom |
💡補足:
グラフ操作ではプロパティとメソッドの両方を駆使します。
特に「ChartTitle.Text」はタイトル変更、「HasTitle」は表示ON/OFFというように組み合わせて使うのが一般的です。
✅ プロパティの取得と設定の基本構文
プロパティの使い方には「取得」と「設定」の2パターンがあります。
・取得(Get)
MsgBox Range("A1").Value
セルA1の値を取得してメッセージボックスに表示します。
・設定(Set)
Range("A1").Value = "Hello"
セルA1のValueプロパティに文字列を設定しています。
また、オブジェクト型プロパティを扱う場合は「Set」を使います。
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
これは「Sheets」プロパティからSheet1オブジェクトを取得する構文です。
✅ プロパティを活用した実務サンプル
プロパティは単独で使うより、複数を組み合わせて業務を自動化することで真価を発揮します。
・セルの背景色と文字色を一括変更
Sub FormatCells()
With Range("A1:A10")
.Interior.Color = vbYellow
.Font.Color = vbBlue
.Font.Bold = True
End With
End Sub
このように「With~End With」でプロパティをまとめると、
コードが見やすくなり実行速度も上がります。
・非表示シートの確認と再表示
Sub ShowHiddenSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
If ws.Visible = xlSheetHidden Or ws.Visible = xlSheetVeryHidden Then
ws.Visible = xlSheetVisible
End If
Next ws
End Sub
ここでは「Visible」プロパティを活用して、
全シートの表示状態を一括で制御しています。
参考:【VBA】Visibleプロパティ:(シートやワークブック)表示・非表示
・ブックの自動保存チェック
Sub AutoSaveCheck()
If Not ThisWorkbook.Saved Then
ThisWorkbook.Save
MsgBox "自動保存を実行しました。"
End If
End Sub
Saved
プロパティは、「前回保存から変更があったか」を判定する便利なプロパティです。
自動保存マクロやバックアップ処理でよく使われます。
参考:【VBA】Application.GetSaveAsFilenameメソッドを使用する方法
✅ よくある混乱ポイント:プロパティかメソッドか分からないとき
初心者が混乱しやすいのが、「プロパティだと思っていたのに実はメソッドだった」ケースです。
間違いやすい例 | 正しい分類 | 補足 |
---|---|---|
Range("A1").Clear | メソッド | 「Clear」は動作命令(消す) |
Range("A1").Value | プロパティ | 値を取得・設定する |
Sheet.Visible | プロパティ | 表示状態を持つ属性 |
Workbook.Save | メソッド | 保存という動作を行う |
🔸 動作(アクション)=メソッド
🔸 情報(状態・属性)=プロパティ
この考え方で整理すれば、ほとんど迷うことはありません。
✅ 実務でプロパティを使いこなすコツ
・「.」ドットでつながる関係を意識する
たとえば
Application → Workbook → Worksheet → Range → Value
のように、上位オブジェクトから下位オブジェクトへ「.」でつながっていきます。
構造を理解しておくと、未知のプロパティも推測しやすくなります。
・IntelliSense(入力候補)を活用する
VBE(Visual Basic Editor)では、オブジェクト名のあとに「.」を打つと
使用できるプロパティ・メソッドの候補が表示されます。
この補完機能を活用すれば、覚えていなくても実行可能なプロパティを確認できます。
・プロパティの階層を調べるには「オブジェクトブラウザ」
VBEの「表示」→「オブジェクトブラウザ(F2)」を開くと、
各オブジェクトに紐づくプロパティ一覧が確認できます。
調べたいオブジェクト名を選択し、右ペインに表示される一覧から詳細を確認できるので、
プロパティの辞書として活用するのがおすすめです。
■ まとめ:VBAのプロパティを理解すれば自動化の自由度が一気に上がる
- プロパティは「オブジェクトの情報を取得・設定するための要素」
Range.Value
やSheet.Name
など、日常的に使う基本から覚える- Application / Workbook / Worksheet / Range の4階層構造を理解する
- 「情報を持つ=プロパティ」「動作する=メソッド」で整理
- 実務ではWith構文・DoEvents・Visible・Font・Interiorなどのプロパティが必須
VBAのプロパティを理解することは、Excel操作を“記録する”段階から“制御する”段階へ進むための大きな一歩です。
単なる命令の羅列ではなく、「Excelを自分でコントロールする力」を手に入れることができます。