• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データを書きだす→範囲を指定してピボットテーブル)

Excel VBAでピボットテーブルを作成する際に問題が発生する理由

このQ&Aのポイント
  • Excel VBAを使ってデータを書き出し、範囲を指定してピボットテーブルを作成する際に、実行時エラーが発生します。
  • エクセルのバージョンが2003または2007であり、既に同じ名前のピボットテーブルが存在するため、エラーが発生します。
  • このエラーが発生した後でも、デバッグを使用してコードを最後まで実行することは可能です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

お示しのコードでは、 ●名前を付ける範囲の参照が相対参照になっています。ブックの使い方にもよるのかもしれませんが、「$」がなくても大丈夫ですか。 ●「Workbooks.Add」により作製されるブックがアクティブになり、SourceData も、このブックから取っているようです。  また、「TableDestination:=""」と書いてある箇所があります。  「Workbooks("ファイル名").Activate」とか、「Worksheets("シート名").Activate」みたいな記述は入れなくてもよいのでしょうか。 参考 URL の例は、1 ファイル内で完結している処理です。「Sheets.Add」を記述することでそのシートがアクティブになっています。 ● CreatePivotTable メソッドと PivotTableWizard メソッドが併記されています。  同じシート上に両者がピボットテーブルを作ることになるので、そのエラーメッセージが出ているのだと思います。  片方の記述のみを残し、他方はプロシージャから削除します。  両者はどちらもピボットテーブルを作りますが、どちらを選ぶかは概ね、好みの問題のようです。  後者では OLE DB というアクセス方法によるデータが使えないとヘルプにあるくらいで、致命的な差はないようです。

参考URL:
http://www.relief.jp/itnote/archives/018038.php
WVSNOMZENWDH
質問者

お礼

ありがとうございます。