[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロでオブジェクトの引数を動的にしたい場合の処理』(Null)
マクロ初心者です。
With ActiveSheet.PivotTables("A").pivotFields("B")
'ここに任意の処理
End With
↑
こちらの式の意味は、ピボットテーブル"A"のピボットフィールド"B"に任意の処理を行う、だと思っています。
その上で、"B"に入る値を動的にしてループさせたいと考えています。
イメージとしては、"C"というシートのA1〜A3に「201603」「201604」「201605」と記述があって、それを"B"に入れて処理をループさせたいです。
ループ自体はForを使えばいいと考えているのですが、オブジェクトの引数をうまく呼び出すことができず。。。配列でarrowを使えばいいのかと思ったのですが、うまくいかず。。
回答のほど、よろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:unknown >
こんなこと? Sub test() Dim r As Range For Each r In Sheets("C").Range("A1:A3") With ActiveSheet.PivotTables("A").PivotFields(r.Value) 'ここに任意の処理 End With Next End Sub 表示が「201603」「201604」「201605」で、 値は別のものなら、r.Valueのかわりに r.Text を使います。 (γ) 2017/03/19(日) 21:37
ループの動作は問題ないようなのですが、これまで使っていて問題なかった任意の処理を記述すると、エラーが発生します。
任意の処理はこちらです。
.Orientation = xlDataField .Caption = "合計" .Function = xlSum
この.Captionでオブジェクトがないというエラーが発生し、止まってしまいます。
(Null) 2017/03/26(日) 22:59
> .Caption = "合計"
を実行していると思われるのですが、
そんなはずないですよね?
(マナ) 2017/03/28(火) 21:59
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.