• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2007→2003へバージョンダウンした場合)

Excel2007→2003へバージョンダウンした場合に発生するピボットテーブル作成エラーについて

このQ&Aのポイント
  • Excel2007→2003へバージョンダウンしたパソコンでピボットテーブルを作成するマクロを実行すると、実行時エラー'1004'が表示される現象が発生します。
  • 同じマクロを2003が入っているパソコンや2007が入っているパソコンで実行してもエラーは発生しません。
  • バージョンダウンしたパソコンでのピボットテーブル作成において、フィールド名が正しくないためエラーが発生する可能性があります。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

>素人考えで恐縮ですが、ピボットテーブルを作成する時点でのエラー >ですのでフィールド名称は必要ないかな?と思いますがどうでしょう?? 例えば、フィールド名称にblankや数式結果エラー値などがある場合は、例示のエラーになります。 ピボットテーブル作成時にフィールド名のチェックがはいります。 本当にバージョンダウンした事が原因なのかどうかは、 Bookやsheetやデータ範囲に不備がないかどうかを確認してからでしょうね。 そういう意味で 『コードと実際のフィールド名称の提示が必要かと思われます。』 というアドバイスだったのですが、受け容れられなければしょうがありません。 とりあえずヒントになるようなサンプルだけ置いておきますので、後はご自分で確認なさってください。 Sub test()   Dim ws As Worksheet   Dim rng As Range   With ActiveWorkbook     With .Sheets("一覧表")       With .Range("T2", .Cells(.Rows.Count, 1).End(xlUp))         If WorksheetFunction.CountBlank(.Rows(1)) > 0 Then           MsgBox "blankあり"           Exit Sub         ElseIf Evaluate("OR(ISERR(" & .Rows(1).Address & "))") Then           MsgBox "errあり"           Exit Sub         End If         Set rng = .Cells       End With     End With     Set ws = .Worksheets.Add     With .PivotCaches.Add(SourceType:=xlDatabase, _                SourceData:=rng.Address(external:=True))       With .CreatePivotTable(TableDestination:=ws.Cells(3, 1))         MsgBox .Name       End With     End With   End With   Set rng = Nothing   Set ws = Nothing End Sub

sekkii
質問者

お礼

blankや数式結果エラー値チェックのマクロまで頂きまして ご親切にありがとうございました!! 早速試させていただいたところ、blankや数式結果エラー値は 見つかりませんでした。 フィールド名の件失礼いたしましたm(= =)m また何かお知恵をお借りすることがあるかもしれませんが よろしくお願い致します。

その他の回答 (1)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

コードを見ない事には判りません。 >なお、同じマクロを他のパソコン(それぞれ2003が入っている >パソコンと2007が入っているパソコン)で実行するとエラーには >なりません。 そういう事もあり得なくはないと思いますが、コード内容によっては実行時の選択状況に依存している場合もあるため、 何とも言えません。 コードと実際のフィールド名称の提示が必要かと思われます。 (固有名称などがある場合は開示できる程度に修正した上で)

sekkii
質問者

補足

コードは以下の通りです。 この部分でエラーになります。 ' ピボットテーブル作成 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "一覧表!A2:T" & ix1).CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル2" ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) 素人考えで恐縮ですが、ピボットテーブルを作成する時点でのエラー ですのでフィールド名称は必要ないかな?と思いますがどうでしょう?? バージョンダウンしたパソコンだけがエラーになるという点が ものすごく気になるのですが、あんまり関係ないのでしょうか?