アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えてください。

Excel2007→2003へバージョンダウンしたパソコンで
ピボットテーブルを作成するマクロを実行したところ
以下のエラーが表示されました。

実行時エラー'1004'
そのピボットテーブルのフィールド名は正しくありません。
ピボットテーブルレポートを作成するには・・・

というものです。
なお、同じマクロを他のパソコン(それぞれ2003が入っている
パソコンと2007が入っているパソコン)で実行するとエラーには
なりません。
Excel2007→2003へバージョンダウンしたパソコンは数台あり、
そのいずれのパソコンでも同じエラーが表示されます。

どのようにバージョンダウンしたのかは不明です。

なぜこのような現象が起こるのか、ご存じの方がいらっしゃいましたら
教えてください。
よろしくお願いいたします。

A 回答 (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
    • good
    • 0
この回答へのお礼

blankや数式結果エラー値チェックのマクロまで頂きまして
ご親切にありがとうございました!!
早速試させていただいたところ、blankや数式結果エラー値は
見つかりませんでした。

フィールド名の件失礼いたしましたm(= =)m

また何かお知恵をお借りすることがあるかもしれませんが
よろしくお願い致します。

お礼日時:2009/07/14 13:43

コードを見ない事には判りません。


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

この回答への補足

コードは以下の通りです。
この部分でエラーになります。

' ピボットテーブル作成
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"一覧表!A2:T" & ix1).CreatePivotTable TableDestination:="", TableName:= _
"ピボットテーブル2"
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)

素人考えで恐縮ですが、ピボットテーブルを作成する時点でのエラー
ですのでフィールド名称は必要ないかな?と思いますがどうでしょう??

バージョンダウンしたパソコンだけがエラーになるという点が
ものすごく気になるのですが、あんまり関係ないのでしょうか?

補足日時:2009/07/14 09:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!