- ベストアンサー
エクセルのピボットテーブルのVBAで、データ範囲の選択時に前の範囲を使用したい時
- エクセルのピボットテーブルのVBAで、データ範囲を選択する際に前の範囲を使用したい場合、作成したテーブルを利用する方法を教えてください。
- エクセルのピボットテーブルのVBAで、同一ブック内で同一データ範囲を基に2つのピボットテーブルを作成する際、2つ目のピボットテーブルの範囲選択に初めに作成したテーブルを利用する方法を教えてください。
- エクセルのピボットテーブルのVBAで、初めに作成したピボットテーブルを名前で指定した場合、ブック名を読み込む方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 > .PivotTableWizard SourceType:=xlPivotTable, _ > SourceData:=ソースデータ元, _ > TableDestination:=テーブル定義, _ > TableName:="ピボットテーブル2" > の所が着色され、マクロが停止してしまいました。 > 何が原因でしょうか. 中断したときに、 ソースデータ元、テーブル定義 にマウスのカーソルを当てて 参照が正しい文字列になっているか、 元の記録したコードの文字列と見比べて確認してみましょう。 正しいのなら、そのブックを開いていないのが原因と思われます。 また、"ピボットテーブル2"が重複していないか、確認してみましょう。
その他の回答 (1)
- OtenkiAme
- ベストアンサー率77% (69/89)
こんにちは。 > 実行時エラー"13" 型が一致しません とでてしまいました。 Set ステートメントは、オブジェクトを参照するときに使います。 変数(ソースデータ元、テーブル定義)の右辺は、文字列なので 型が一致しませんとExcelに叱られます。 変数を使うときは、きちんと変数を宣言して使うといいと思います。 ご質問のコードを整理すると次のようになります。 がんばってください。 Dim ソースデータ元 As String Dim テーブル定義 As String With ActiveWorkbook With .Sheets("操作").Range("F1") ソースデータ元 = "[売上" & .Value & ".xls]得意先別!ピボットテーブル1" テーブル定義 = "'[売上" & .Value & ".xls]商品別'!R3C2" End With With .Sheets("商品別") .PivotTableWizard SourceType:=xlPivotTable, _ SourceData:=ソースデータ元, _ TableDestination:=テーブル定義, _ TableName:="ピボットテーブル2" With .PivotTables("ピボットテーブル2") .SmallGrid = False .AddFields RowFields:=Array("得意先コード", "得意先", "データ"), _ ColumnFields:="売上月", PageFields:="商品名" With .PivotFields("売上数量") .Orientation = xlDataField .Caption = "合計 : 売上数量" .Position = 1 .Function = xlSum End With End With End With End With
お礼
早速の回答有難うございます。 基礎を勉強せずに質問して失礼しています。 戴いたものを挿入して実行してみました。 ソースデータ元 = "[売上" & .Value & ".xls]得意先別!ピボットテーブル1" テーブル定義 = "'[売上" & .Value & ".xls]商品別'!R3C2" End With With .Sheets("商品別") ここまでは進みましたが、 .PivotTableWizard SourceType:=xlPivotTable, _ SourceData:=ソースデータ元, _ TableDestination:=テーブル定義, _ TableName:="ピボットテーブル2" の所が着色され、マクロが停止してしまいました。 何が原因でしょうか. 教えていただけないでしょうか。
お礼
お答え有難うございます。 元の記録と見比べたところ誤りがありました。 修正してマクロを実行したところ完全に終了し、予定していたピボットテーブルの二つ目が出来上がりました。 素晴らしいことで、うれしい気持ちでいっぱいです。 本当に有難うございました。今後ともよろしくお願い致します。