Excel VBAでピボットテーブルの最終行を取得することで、動的なデータ処理や自動化を行う際に便利です。例えば、データをフィルターした後に結果の範囲を特定したい場合などに活用します。
使い方や注意点など、サンプルコードをもとに具体的に解説します。
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
以下のようなシーンで利用されます。
1.ピボットテーブルのデータ範囲を特定し、新しいデータを追加する際の基準にしたい。
2.最終行のデータに基づいてグラフを作成したり、他の処理を行いたい。
3.動的なレポートを作成するために、最終行を基準にしたい。
pivotTable.TableRange2.Rows.Count ピボットテーブルの最終行を取得
1.ピボットテーブルが更新されると、最終行が変わることがあるため、コードを実行する前に最新の状態に更新しておくことが重要です。
2.ピボットテーブルの名前やシート名を正確に指定する必要があります。
Option Explicit
Sub GetPivotTableLastRow()
Dim ws As Worksheet
Dim pivotTable As pivotTable
Dim lastRow As Long
' ピボットテーブルがあるシートを指定
Set ws = ThisWorkbook.Sheets("ピボットシート")
' ピボットテーブルを指定
Set pivotTable = ws.PivotTables("SamplePivotTable")
' ピボットテーブルの最終行を取得
lastRow = pivotTable.TableRange2.Rows.Count
MsgBox "ピボットテーブルの最終行は: " & lastRow
End Sub
1.シートとピボットテーブルの指定
Set ws = ThisWorkbook.Sheets("Sheet1") で、ピボットテーブルがあるシートを指定します。
Set pivotTable = ws.PivotTables("PivotTable1") で、対象のピボットテーブルを指定します。
2.最終行を取得
pivotTable.TableRange2.Rows.Count で、ピボットテーブルのデータ範囲の行数を取得し、最終行の位置を特定します。
TableRange2 ピボットテーブルの完全なデータ範囲(集計値とフィールドラベルの両方)を取得します。最終行が含まれている範囲を正確に知りたいときに使用します。最終行を使ってさらにデータ処理を行う場合には、この情報を基にコードを追加することができます。
操作方法:1.●●●をクリック(スマホはタップ)で答え表示。2.答えをクリック(スマホはタップ)で●●●表示。1⇔2を繰り返すことで、記憶を定着できます。
1.シートとピボットテーブルの指定
Set ws = ThisWorkbook.Sheets("Sheet1") で、ピボットテーブルがあるシートを指定します。
Set pivotTable = ws.●●●("PivotTable1") で、対象のピボットテーブルを指定します。
2.最終行を取得
pivotTable.●●●.Rows.Count で、ピボットテーブルのデータ範囲の行数を取得し、最終行の位置を特定します。
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。