Excel VBA | Excel VBAで用意されているオブジェクト

Excel VBA VBA
スポンサーリンク

Excel VBAオブジェクトTOP10 例題集

ここでは Excel VBAオブジェクトTOP10 を対象に、学習用の「例題 → 回答コード → 解説」をセットでまとめます。
実際に手を動かしながら理解できるように、シンプルかつ実務に近い例題にしました。

① Range

例題:セル A1 に「学習中」と入力しなさい。
回答コード

Range("A1").Value = "学習中"
VB

解説
Range はセルや範囲を表すオブジェクト。.Value プロパティで値を取得・設定できます。


② Cells

例題:2行3列目(C2セル)に「Cellsで指定」と入力しなさい。
回答コード

Cells(2, 3).Value = "Cellsで指定"
VB

解説
Cells(行番号, 列番号) でセルを指定できます。ループ処理と相性が良いです。


③ Rows / Columns

例題:1行目を削除しなさい。
回答コード

Rows(1).Delete
VB

解説
RowsColumns は行・列を表すオブジェクト。削除や幅・高さの変更が可能です。


④ Worksheet

例題:「Sheet1」をアクティブにしなさい。
回答コード

Worksheets("Sheet1").Activate
VB

解説
Worksheets コレクションからシートを指定し、.Activate でアクティブ化できます。


⑤ Workbook

例題:新しいブックを作成しなさい。
回答コード

Workbooks.Add
VB

解説
Workbooks コレクションから .Add を呼び出すと新規ブックが作成されます。


⑥ Application

例題:Excelの警告メッセージを一時的に非表示にしなさい。
回答コード

Application.DisplayAlerts = False
VB

解説
Application はExcel全体を表すオブジェクト。.DisplayAlerts を False にすると保存確認などのダイアログが抑制されます。


⑦ Font

例題:セル A1 の文字を赤色・太字にしなさい。
回答コード

Range("A1").Font.Bold = True
Range("A1").Font.Color = vbRed
VB

解説
Font オブジェクトは文字の書式を制御します。色やサイズ、太字などを設定可能です。


⑧ Interior

例題:セル A1 の背景色を黄色にしなさい。
回答コード

Range("A1").Interior.Color = vbYellow
VB

解説
Interior はセルの塗りつぶしを表すオブジェクト。.Color プロパティで色を指定します。


⑨ Chart

例題:新しいグラフを作成しなさい。
回答コード

Charts.Add
VB

解説
Charts コレクションから .Add を呼ぶと新しいグラフシートが作成されます。.ChartType で種類を指定可能です。


⑩ PivotTable

例題:A1:B3 のデータを元にピボットテーブルを作成しなさい。
回答コード

Dim pc As PivotCache
Dim pt As PivotTable

Set pc = ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, SourceData:=Range("A1:B3"))

Set pt = pc.CreatePivotTable( _
    TableDestination:=Range("D1"), TableName:="売上表")

pt.PivotFields("商品").Orientation = xlRowField
pt.PivotFields("売上").Orientation = xlDataField
VB

解説
PivotCache でデータをキャッシュし、PivotTable を作成します。PivotFields で行・列・値を設定します。


まとめ

  • Range, Cells, Rows/Columns → セル操作の基礎
  • Worksheet, Workbook → シート・ブック操作
  • Application → Excel全体制御
  • Font, Interior → 書式設定
  • Chart, PivotTable → データ可視化・分析

練習問題シート自動生成マクロ

Option Explicit

Sub CreatePracticeSheet()
    Dim ws As Worksheet
    Dim problems As Variant
    Dim answers As Variant
    Dim explanations As Variant
    Dim i As Long
    
    ' 既存の「練習問題」シートがあれば削除
    On Error Resume Next
    Application.DisplayAlerts = False
    Worksheets("練習問題").Delete
    Application.DisplayAlerts = True
    On Error GoTo 0
    
    ' 新しいシート作成
    Set ws = Worksheets.Add
    ws.Name = "練習問題"
    
    ' 例題・回答・解説データ
    problems = Array( _
        "① Range: セルA1に「学習中」と入力しなさい", _
        "② Cells: 2行3列目(C2)に「Cellsで指定」と入力しなさい", _
        "③ Rows/Columns: 1行目を削除しなさい", _
        "④ Worksheet: 「Sheet1」をアクティブにしなさい", _
        "⑤ Workbook: 新しいブックを作成しなさい", _
        "⑥ Application: 警告メッセージを非表示にしなさい", _
        "⑦ Font: セルA1を赤色・太字にしなさい", _
        "⑧ Interior: セルA1の背景を黄色にしなさい", _
        "⑨ Chart: 新しいグラフを作成しなさい", _
        "⑩ PivotTable: A1:B3のデータからピボットテーブルを作成しなさい" _
    )
    
    answers = Array( _
        "Range(""A1"").Value = ""学習中""", _
        "Cells(2,3).Value = ""Cellsで指定""", _
        "Rows(1).Delete", _
        "Worksheets(""Sheet1"").Activate", _
        "Workbooks.Add", _
        "Application.DisplayAlerts = False", _
        "Range(""A1"").Font.Bold = True : Range(""A1"").Font.Color = vbRed", _
        "Range(""A1"").Interior.Color = vbYellow", _
        "Charts.Add", _
        "PivotCaches.Create(xlDatabase, Range(""A1:B3"")).CreatePivotTable Range(""D1""), ""売上表""" _
    )
    
    explanations = Array( _
        "Rangeはセル範囲を表す。Valueで値を設定できる。", _
        "Cells(行,列)でセルを指定できる。ループ処理で便利。", _
        "RowsやColumnsは行・列を表す。Deleteで削除可能。", _
        "Worksheets(""名前"")でシートを指定し、Activateでアクティブ化。", _
        "Workbooks.Addで新しいブックを作成。", _
        "ApplicationはExcel全体を表す。DisplayAlerts=Falseで警告非表示。", _
        "Fontは文字書式を制御。BoldやColorを設定可能。", _
        "Interiorはセルの塗りつぶしを制御。Colorで色指定。", _
        "Charts.Addで新しいグラフを作成。ChartTypeで種類変更可能。", _
        "PivotCacheを作成し、CreatePivotTableでピボットテーブルを生成。" _
    )
    
    ' 見出し
    ws.Range("A1").Value = "例題"
    ws.Range("B1").Value = "回答欄"
    ws.Range("C1").Value = "解説"
    ws.Range("A1:C1").Font.Bold = True
    
    ' データ書き込み
    For i = 0 To UBound(problems)
        ws.Cells(i + 2, 1).Value = problems(i)
        ws.Cells(i + 2, 2).Value = answers(i)
        ws.Cells(i + 2, 3).Value = explanations(i)
    Next i
    
    ' 見やすく整形
    ws.Columns("A:C").AutoFit
    ws.Rows(1).Interior.Color = RGB(200, 200, 250)
    
    MsgBox "練習問題シートを作成しました!", vbInformation
End Sub
VB

使い方

  1. Excelで Alt + F11 を押してVBAエディタを開く
  2. 標準モジュールに上記コードを貼り付ける
  3. CreatePracticeSheet を実行する
  4. 新しいシート「練習問題」が作成され、例題・回答・解説が一覧表示される
タイトルとURLをコピーしました