3

長い間完璧に機能していた小さな VBA コードがあります。それは本質的に次のとおりでした。

Me.PivotTables("APivot").PivotFields("AField").CurrentPage = "Some text"

これは Excel 2013 まで機能し、行は不特定のエラーで失敗しました:

ランタイム エラー 5:
プロシージャ コールまたは引数が無効です。

試行錯誤の結果、Excel 2013 では、ユーザーが Excel インターフェイスを使用して手動でそのページに移動するまで、コードを使用してピボット テーブル ページに移動できないことがわかりました。ユーザーがページに移動するとすぐに、コードを使用したそのページへの移動は常に成功します (ワークブックを閉じるまで)。したがって、コードが任意のページに移動できるようにするには、まずユーザーがすべてのページを手動で確認する必要があります。

その回避策は、代わりに基になるセルの値を変更することです。

Me.PivotTables("APivot").PivotFields("AField").CurrentPage.LabelRange.Value = "Some text"

現在、この回避策を使用することを余儀なくされていますが、ハックのように感じます。

Excel 2013 でこの動作が発生する原因は何ですか? ページに移動するために最初に行う必要があることはありますか (何かを突く、何らかの方法でデータをロードするなど)。

編集: Office 2016 でも同じ問題が発生します。

4

1 に答える 1