Excel-VBA ピボットテーブル作成とフィールド配置するマクロ

2019/12/29

プログラム

t f B! P L
Excel VBAマクロ。今回は
ピボットテーブル作成とフィールド配置するマクロ
を示す。

■Excel-VBA ピボットテーブル作成とフィールド配置するマクロ

Sub sample46()
'ω'ピボットテーブル作成  
  Dim pvt As PivotTable
  Dim pvtData As Range

  'ω'元データを変数に格納
  Set pvtData = ActiveSheet.Range("A1").CurrentRegion

  'ω'ピボットテーブルを作成するシートを作成
    With Worksheets.Add(After:=Worksheets(Worksheets.Count))
    .Name = "Psheet"
    End With

  'ω'ピボットテーブルの作成
  Set pvt = _
    ActiveWorkbook.PivotCaches.Add( _
      SourceType:=xlDatabase, _
      SourceData:=pvtData). _
        CreatePivotTable(TableDestination:=Range("A3"), TableName:="ピボットテーブル")

  'ω'フィールドの配置
  With pvt
    .PivotFields("部品名称").Orientation = xlRowField
    .PivotFields("部品番号").Orientation = xlRowField
    .PivotFields("DD名目").Orientation = xlRowField
    .PivotFields("DD状態").Orientation = xlRowField
    .PivotFields("格納場所").Orientation = xlRowField
    .PivotFields("DRD番").Orientation = xlColumnField
    
    With .PivotFields("計画数量")
        .Orientation = xlDataField
        .Function = xlSum
        .Caption = "合計 / 計画数量"
    End With
  
  End With

'ω'不要行非表示,右クリック→フィールドの設定→なし
    Worksheets("Psheet").Activate
    ActiveSheet.PivotTables("ピボットテーブル").PivotFields("部品名称").Subtotals = _
        Array(False, False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("ピボットテーブル").PivotFields("部品番号").Subtotals = _
        Array(False, False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("ピボットテーブル").PivotFields("DD名目").Subtotals = _
        Array(False, False, False, False, False, False, False, False, False, False, False, False)
    ActiveSheet.PivotTables("ピボットテーブル").PivotFields("DD状態").Subtotals = _
        Array(False, False, False, False, False, False, False, False, False, False, False, False)

Application.CommandBars("PivotTable").Visible = False 'ω'ピボットテーブルツールバーの消去

End Sub
※[3.~4.] 変数宣言。
※[7.] 元データを変数に格納。
※[10.~12.] ピボットテーブルを作成するシートを作成。
※[15.~19.] ピボットテーブルを作成。
※[22.~36.] 項目をピボットテーブルの
フィールドに配置。
※[39.~47.] 不要行を非表示。
※[49.] ピボットテーブルツールバーの消去。

■マクロ実行対象

ワークブック「部品データ_191128.xlsx」

■マクロ実行結果

実行すると、ピボットテーブルが作成され、
項目の値がフィールドに配置される。

■あとがき

今回はExcel VBAマクロ。
ピボットテーブル作成とフィールド配置するマクロ
を示した。

ピボットテーブルは
「ある項目の使用数量合計はいくつか」
など複数項目の数値分析など
したい場合に使う。

定型作業でピボットテーブルを作っている人は
VBAで記述すると作業時間を短縮できる。

コードの先頭行に
Option VBASupport 1
を記述してLibreOffice Basicでも使えるか試したが
エラーがでて使えなかった。
以上。

ブログ アーカイブ

ラベル

このブログを検索

スポンサーリンク

自己紹介

機械メーカー総合職正社員10年勤務後退職。 エクセルVBAプログラム歴 5年。 LibreOffice(無料)でVBAマクロ検証。
■Fortniteクエスト攻略動画■
■Twitter■
⇒詳細プロフィールを表示

QooQ