none
ピポットテーブルがEXCEL2010で動かなくなった RRS feed

  • 質問

  • いつもお世話になっております。

    EXCEL2003で動かしていたマクロが2010で動作しなくなり困っております。

    止まっている箇所は、

    Function sheet01_Print(prt_st, prt_ssk) As Boolean
        Sheets(prt_st).Select
        With ActiveSheet
    ★       .PivotTables("ピボットテーブル1").PivotFields("組織").CurrentPage = prt_ssk
        End With

    (以下略)

     の★の箇所で、エラー1004「アプリケーション定義又はオブジェクト定義のエラーです」が出ます。

    この箇所で、

    debug.print  .PivotTables("ピボットテーブル1").PivotFields(1).name

    と入れると、”組織”と出ますし、

    debug.print  .PivotTables("ピボットテーブル1").PivotFields("組織").CurrentPage

    と入れると、選択中のフィルターの値が出ますので、参照は誤っていないように見えます。

    ネット上で、フィルタを一度クリアしたらうまくいったという記事があったので、

            .PivotTables("ピボットテーブル1").PivotFields("組織").CurrentPage = ("All")
            .PivotTables("ピボットテーブル1").PivotFields("組織").ClearAllFilters
    を入れてみたり、書き方を替えて、

            With .PivotTables("ピボットテーブル1").PivotFields("組織")

                .ClearAllFilters
                .PivotFilters.Add Type:=xlCaptionEquals, Value1:=prt_ssk
            End With
    とかやってみましたが、結果は同じでした。 

    バージョンが変わってマクロの書き方が変わったのかと思い、マクロの記録をしてみましたが、

        ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("組織").CurrentPage = "A"

    のように出てきますが、これを実行しても同じエラーになります。

    VBAのピポットテーブルは互換性が無いのでしょうか?


    • 編集済み hatsujiro 2015年5月12日 2:30
    2015年5月12日 2:29

回答

  • 自己レスです。

    ネット上で同様の質問があり、解決策として、根拠がよく判りませんでしたが、

    .PivotTables("ピボットテーブル1").PivotFields("組織").CurrentPage = prt_ssk    の部分を

    .PivotTables("ピボットテーブル1").PivotFields("組織").CurrentPage = (prt_ssk)    としたら、動作しました。

    しかし、2回目にこのFUNCTIONを動かす時に、prt_sskの値を別の値にセットし直すと、

    今度は、別のエラーが出てきます。 エラー5「プロシジャの呼出し、または引数が不正です。」

    debug.print .PivotTables("ピボットテーブル1").PivotFields("組織").CurrentPage とすると、

    1回前にセットした値が参照できるので、またセットだけができない現象に陥っています。

    まったく訳が判りません。

    【追記】

    .PivotTables("ピボットテーブル1").PivotFields("組織").CurrentPage = (StrConv(prt_ssk, vbFromUnicode))   

    としたら、やっと動きました。変数にするとUnicodeになっているからのようです。

    半日これにかかりきりでしたが、下記サイトのおかげで解決しました。Excelのピポットテーブルはこりごりですが、そう簡単に抜け出せられません。

    (参考URL)http://yonaizumi.dip.jp/weblog/cappe/2009/07/vba-excel-8.html



    • 編集済み hatsujiro 2015年5月12日 9:49
    • 回答としてマーク hatsujiro 2015年8月28日 5:12
    2015年5月12日 4:29