Excel 2007 SP2 もしくは Excel 2010 の環境で空白セルを "(空白)" と指定したマクロのフィルター処理を実行するとエラーが発生する

現象

Microsoft Office Excel 2007 に 2007 Microsoft Office スイート Service Pack 2 (SP2) を適用した環境もしくは Excel 2010 で、ピボットテーブルを使用して空白セルを "(空白)" と指定したマクロのフィルター処理を実行すると、以下のようなエラー メッセージが表示されて処理が失敗します。

エラー メッセージの例 :

400

または

実行時エラー ‘1004’

アプリケーション定義またはオブジェクト定義のエラーです。

なお、この現象は Microsoft Office Excel 2007 に 2007 Microsoft Office スイート Service Pack 1 (SP1) を適用した環境では発生しません。

回避策

Excel 2007 SP2 および Excel 2010 で、ピボットテーブルのマクロを使用して空白セルにフィルターをかける場合は、.PivotItems の指定には "(空白)" ではなく "(blank)" を使用してください。

状況

マイクロソフトでは、この問題について現在調査中です。詳細については、わかりしだいこの資料に掲載する予定です。

詳細

問題の再現手順

  1. Excel 2007 もしくは Excel 2010 を起動します。

  2. セルに以下の値を入力します。

    注 : 空白の部分は何も入力しないでください。

    A

    B

    1

    A

    B

    2

    1

    2

    3

    空白

    3

    4

    4

    空白

  3. A1 から B4 を選択して、[挿入] タブの [ピボットテーブル] をクリックします。

  4. [A] フィールドを [行ラベル] に配置し、[B] フィールドを [列ラベル] に配置します。ピボットテーブル上に空白のセルが (空白) と表示されることを確認します。

  5. 以下のマクロを作成します。

    Sub MacroSP1()
    ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("A").PivotItems("(空白)").Visible = False
    End Sub

    Sub MacroSP2()
    ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("A").PivotItems("(blank)").Visible = False
    End Sub
  6. マクロを実行する前に任意の名前でファイルを保存します。

  7. ファイルを保存後、ピボットテーブルが表示されているシートをアクティブにした状態でマクロ MacroSP2 を実行します。リスト [A] の (空白) のセルが非表示になることを確認します。

  8. ファイルを保存せずファイルを終了します。

  9. ファイルを開きなおし、ピボットテーブルが表示されているシートをアクティブにした状態でマクロ MacroSP1 を実行します。

結果

Excel 2007 SP2 および Excel 2010 でマクロ MacroSP1 を実行すると、エラーが発生してフィルター処理が実行されません。

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

フィードバックをお送りいただきありがとうございます!

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×