[[20170319211737]] 『マクロでオブジェクトの引数を動的にしたい場合の』(Null) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロでオブジェクトの引数を動的にしたい場合の処理』(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.