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. セルに以下の値を入力します。

    注 : 空白の部分は何も入力しないでください。
    AB
    1AB
    212
    3空白3
    44空白
  3. A1 から B4 を選択して、[挿入] タブの [ピボットテーブル] をクリックします。
  4. [A] フィールドを [行ラベル] に配置し、[B] フィールドを [列ラベル] に配置します。ピボットテーブル上に空白のセルが (空白) と表示されることを確認します。
  5. 以下のマクロを作成します。
    Sub MacroSP1()    ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("A").PivotItems("(空白)").Visible = FalseEnd SubSub MacroSP2()    ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("A").PivotItems("(blank)").Visible = FalseEnd Sub
  6. マクロを実行する前に任意の名前でファイルを保存します。
  7. ファイルを保存後、ピボットテーブルが表示されているシートをアクティブにした状態でマクロ MacroSP2 を実行します。リスト [A] の (空白) のセルが非表示になることを確認します。
  8. ファイルを保存せずファイルを終了します。
  9. ファイルを開きなおし、ピボットテーブルが表示されているシートをアクティブにした状態でマクロ MacroSP1 を実行します。

結果

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

文書番号:978761 - 最終更新日: 09/20/2016 12:07:00 - リビジョン: 3.0

Microsoft Office Excel 2007, Microsoft Excel 2010

  • kbtshoot kbexpertiseinter kbexpertisebeginner kbbug kberrmsg kbharmony KB978761
フィードバック