ピボットテーブルの作成/操作 [ExcelのVBA]
事前準備
図のようにエクセルに値を入力してください。
データを入力するのが大変な方は下記からダウンロードできます。
excel_vba_55.xlsx 11.1 KB (11,408 バイト)
ピボットテーブルを作成する
Excel2007以降
次のコードはExcel2007,Excel2010,Excel2013で動作可能です。Excel2016以降は確認していませんが恐らく動作するはずです。
Private Sub CommandButton3_Click()
Dim ws As Worksheet
Dim pvc As PivotCache
Dim pvt As PivotTable
' シートの追加
Set ws = Sheets.Add
' コレクションにピボットテーブルの新しいキャッシュを追加
Set pvc = ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:="Sheet1!B2:G15", _
Version:=xlPivotTableVersion15)
' SourceDataは「テーブル1」と名前でも可能
'Set pvc = ActiveWorkbook.PivotCaches.Create( _
' SourceType:=xlDatabase, _
' SourceData:="テーブル1", _
' Version:=xlPivotTableVersion15)
' ピボットテーブルの作成
Set pvt = pvc.CreatePivotTable( _
TableDestination:=ws.Name & "!R3C1", _
TableName:="ピボットテーブル1", _
DefaultVersion:=xlPivotTableVersion15)
' フィールドの選択
With pvt.PivotFields("役職")
.Orientation = xlRowField
.Position = 1
End With
' フィールドの選択
With pvt.PivotFields("社員氏名")
.Orientation = xlRowField
.Position = 2
End With
' データフィールドの選択
pvt.AddDataField pvt.PivotFields("標準報酬"), "合計 / 標準報酬", xlSum
End Sub
[結果]
Excel2003以降
このコードはExcel2003以降で動作しますが、装飾がないのでシンプルな表示となります。
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim pvc As PivotCache
Dim pvt As PivotTable
' シートの追加
ws = Sheets.Add
' コレクションにピボットテーブルの新しいキャッシュを追加
Set pvc = ActiveWorkbook.PivotCaches.Add( _
SourceType:=xlDatabase, _
SourceData:="Sheet1!B2:G15")
' ピボットテーブルの作成
Set pvt = pvc.CreatePivotTable( _
TableDestination:=ws.Name & "!R3C1", _
TableName:="ピボットテーブル1", _
DefaultVersion:=xlPivotTableVersion10)
' フィールドの選択
With pvt.PivotFields("役職")
.Orientation = xlRowField
.Position = 1
End With
' フィールドの選択
With pvt.PivotFields("社員氏名")
.Orientation = xlRowField
.Position = 2
End With
' データフィールドの選択
pvt.AddDataField pvt.PivotFields("標準報酬"), "合計 / 標準報酬", xlSum
End Sub
[結果]
ピボットグラフを作成する
ピボットグラフはExcel2007から導入されました。
Private Sub CommandButton4_Click()
' Excel2007/Excel2010の場合
'ActiveSheet.Shapes.AddChart(xlColumnClustered).Select
'ActiveChart.SetSourceData Source:=Range(ActiveSheet.Name & "!$A$3:$C$3")
' Excel2013/Excel2016以降の場合
ActiveSheet.Shapes.AddChart2(-1, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range(ActiveSheet.Name & "!$A$3:$C$3")
End Sub
[結果]
※グラフの使い方は「グラフの作成/操作」をご覧ください。
ピボットテーブルの操作
スライサーを追加する
スライサーはExcel2010から導入されました。
Private Sub CommandButton5_Click()
Dim sc As SlicerCache
' スライサーキャッシュの作成
Set sc = ActiveWorkbook.SlicerCaches.Add2( _
Source:=ActiveSheet.PivotTables("ピボットテーブル1"), _
SourceField:="社員氏名")
' スライサーの作成
sc.Slicers.Add _
SlicerDestination:=ActiveSheet, _
Name:="社員氏名", _
Caption:="社員氏名", _
Top:=75.75, _
Left:=222.75, _
Width:=144, _
Height:=187.5
End Sub
[結果]
タイムラインを追加する
タイムラインはExcel2013から導入されました。
Private Sub CommandButton6_Click()
Dim sc As SlicerCache
' スライサーキャッシュの作成
Set sc = ActiveWorkbook.SlicerCaches.Add2( _
Source:=ActiveSheet.PivotTables("ピボットテーブル1"), _
SourceField:="入社年月日", _
SlicerCacheType:=xlTimeline)
' タイムラインの作成
sc.Slicers.Add _
SlicerDestination:=ActiveSheet, _
Name:="入社年月日", _
Caption:="入社年月日", _
Top:=123.75, _
Left:=163.5, _
Width:=262.5, _
Height:=111.75
End Sub
[結果]
VBAの固有操作
[セルの操作]
セルの値/計算式を設定する
セルのフォントを設定する
セルの背景色/網掛けを設定する
セルの文字配置を設定する
セルの表示形式を設定する
セルに罫線を設定する
セルの選択/コピー/貼り付け/切り取り/削除/クリア
セルの結合/結合の解除をする
セルにコメントを追加/削除する
シートの保護とセルのロック解除をする
セルの値をソートする
[テーブル/グラフ/ピボットテーブル]
テーブルの作成/操作
グラフの作成/操作
ピボットテーブルの作成/操作
[ワークシート]
シートの追加/移動/コピー/削除/表示/印刷
ワークシートのイベント
[ワークブック]
ブックを開く/追加/上書き/名前保存/PDFの作成
ワークブックのイベント
[その他]
その他の操作まとめ
エクセル講座のクイックリンク
関連記事
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









