Excel VBA | Excel VBAにおける「プロパティ」と「メソッド」

Excel VBA VBA
スポンサーリンク

Excel VBAの「プロパティ」と「メソッド」を初心者向けにやさしく説明

最初は少し硬い言葉に感じるけれど、ここをつかむとVBAが一気にわかりやすくなります。実際に動く例題を交えながら、噛み砕いて説明します。


基本の考え方

  • オブジェクト:
    説明: Excelの中にある「もの」のこと。例: ワークブック、シート、セル、フォントなど。
  • プロパティ:
    説明: オブジェクトが持つ「状態・見た目・設定」の情報。読み取りや変更ができる。
  • メソッド:
    説明: オブジェクトに「動作・処理」をさせる命令。実行すると何かが起きる。

たとえ話: 家(オブジェクト)に対して、壁の色(プロパティ)を青に変えるのは「状態の変更」。掃除する(メソッド)は「動作」を実行すること。


よく使うオブジェクトで理解する

  • セル (Range オブジェクト):
    プロパティ例: 値、文字色、フォントサイズ、背景色など
    メソッド例: 削除する、コピーする、クリアする、選択する
  • ワークシート (Worksheet オブジェクト):
    プロパティ例: 名前、可視/非表示
    メソッド例: 追加する、削除する、移動する

例題1: セルの値を読み書きする(プロパティ)

  • 目的: セルの値を読んで、別のセルに書き込む
  • ポイント: Value は「値」というプロパティ
Sub Sample_ReadWrite()
    ' A1の値を読み取って、B1に書き込む
    Dim v As Variant
    v = Range("A1").Value      ' ← 値を読む(プロパティを取得)
    Range("B1").Value = v      ' ← 値を書く(プロパティを設定)
End Sub
VB
  • 補足:
    Valueは省略可能: Range("B1") = v でも同じ意味。
    型の柔軟性: Variant は文字・数値どちらも入るので初心者向け。

例題2: セルの見た目を変える(プロパティ)

  • 目的: セルA1の文字色を赤、背景を黄色、太字にする
  • ポイント: 見た目は FontInterior のプロパティ
Sub Sample_FormatCell()
    With Range("A1")
        .Font.Bold = True              ' 太字
        .Font.Color = RGB(255, 0, 0)   ' 文字色を赤
        .Interior.Color = RGB(255, 255, 0) ' 背景色を黄色
    End With
End Sub
VB
  • 補足:
    With構文: 同じセルに対する指定をまとめて書くと見やすい。

例題3: セルを削除する(メソッド)

  • 目的: B2セルを削除し、左方向に詰める
  • ポイント: Delete は「削除する」というメソッド。動作に引数を渡せる。
Sub Sample_DeleteCell()
    Range("B2").Delete Shift:=xlShiftToLeft
End Sub
VB
  • 補足:
    引数ありメソッド: Shift:=xlShiftUp にすれば上方向に詰める。
    プロパティとの違い: プロパティは「状態の変更」、メソッドは「動作の実行」。

例題4: シートを追加・名前をつける(メソッド+プロパティ)

  • 目的: 新しいシートを追加して、名前を「集計」に変更する
  • ポイント: 追加はメソッド、名前変更はプロパティ
Sub Sample_AddSheet()
    Dim ws As Worksheet
    Set ws = Worksheets.Add      ' ← 新規追加(メソッド)
    ws.Name = "集計"             ' ← 名前を設定(プロパティ)
End Sub
VB
  • 補足:
    Setが必要: オブジェクト変数には Set を使う。

つまずきポイントとコツ

  • プロパティは「=」で読み書き、メソッドは「()」で実行:
    例) Range("A1").Value = 10(プロパティ)/Range("A1").Clear(メソッド)
  • 引数つきメソッドは名前付き引数が安心:
    例) Delete Shift:=xlShiftUp のように「何をどうするか」が読みやすい。
  • オブジェクトごとに使えるものが違う:
    RangeWorksheet では使えるプロパティ・メソッドが別。迷ったら対象が何かを意識。
  • Withでまとまりを作る:
    同じ対象に複数指定する場合は With ... End With でコードを短く。

練習課題

  1. 課題: A1〜A10の数値を合計して、B1に表示し、B1を太字・青文字にする
    • ヒント: WorksheetFunction.Sum(メソッド)、ValueFont.BoldFont.Color
Sub Practice_SumFormat()
    Dim total As Double
    total = WorksheetFunction.Sum(Range("A1:A10"))
    Range("B1").Value = total
    With Range("B1").Font
        .Bold = True
        .Color = RGB(0, 0, 255)
    End With
End Sub
VB
  1. 課題: C列の空白セルを削除して上に詰める
    • ヒント: SpecialCells(xlCellTypeBlanks)Delete Shift:=xlShiftUp で処理
Sub Practice_DeleteBlanks()
    On Error Resume Next ' 空白がない時のエラー回避(簡易)
    Columns("C").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlShiftUp
    On Error GoTo 0
End Sub
VB

まとめの一言

  • プロパティ: 見た目や値など「状態」を読んだり変えるもの
  • メソッド: 追加・削除・クリアなど「動作」を実行するもの
  • セットで考える: 「何に(オブジェクト)」「どうする(プロパティ/メソッド)」の二段構えで書くと迷わない
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました