- ベストアンサー
Excel2007→2003へバージョンダウンした場合に発生するピボットテーブル作成エラーについて
- Excel2007→2003へバージョンダウンしたパソコンでピボットテーブルを作成するマクロを実行すると、実行時エラー'1004'が表示される現象が発生します。
- 同じマクロを2003が入っているパソコンや2007が入っているパソコンで実行してもエラーは発生しません。
- バージョンダウンしたパソコンでのピボットテーブル作成において、フィールド名が正しくないためエラーが発生する可能性があります。
- みんなの回答 (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
その他の回答 (1)
- end-u
- ベストアンサー率79% (496/625)
コードを見ない事には判りません。 >なお、同じマクロを他のパソコン(それぞれ2003が入っている >パソコンと2007が入っているパソコン)で実行するとエラーには >なりません。 そういう事もあり得なくはないと思いますが、コード内容によっては実行時の選択状況に依存している場合もあるため、 何とも言えません。 コードと実際のフィールド名称の提示が必要かと思われます。 (固有名称などがある場合は開示できる程度に修正した上で)
補足
コードは以下の通りです。 この部分でエラーになります。 ' ピボットテーブル作成 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "一覧表!A2:T" & ix1).CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル2" ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) 素人考えで恐縮ですが、ピボットテーブルを作成する時点でのエラー ですのでフィールド名称は必要ないかな?と思いますがどうでしょう?? バージョンダウンしたパソコンだけがエラーになるという点が ものすごく気になるのですが、あんまり関係ないのでしょうか?
お礼
blankや数式結果エラー値チェックのマクロまで頂きまして ご親切にありがとうございました!! 早速試させていただいたところ、blankや数式結果エラー値は 見つかりませんでした。 フィールド名の件失礼いたしましたm(= =)m また何かお知恵をお借りすることがあるかもしれませんが よろしくお願い致します。