- 締切済み
Excel Pivot 名前の定義の値をマクロで取得
こんにちは。いつも参考にさせていただいています。 マクロでPivotを自動更新する記述をしています。 データが入力されているシートに 名前の定義をして"データ"と名前をつけ、参照範囲を以下のとおり設定しました。 =OFFSET($A$1,0,0,COUNTA($A:$A),COUNTA($1:$1)) Pivotが表示されるシートのマクロに下記のように記述して、 自動的に更新ができることを確認できました。 Private Sub Worksheet_Activate() Range("A1").Select ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _ "データ" End Sub マクロ自体は問題なく動くのですが、 目でも確認をとりたいため、MsgBoxを追加して、現在選択されているデータ範囲を表示させたいと考えています。 例) 「データ範囲は$A$1:$D$150に変更されました」 そこで、 MsgBox "データ範囲は" & データ & "に変更されました" という一文を上記に追加してみましたが、データの部分でセルの範囲を取得できませんでした。 "データ"としてもダメで、名前の定義で指定された範囲の値を取得する方法がわかりません。 マクロで可能な仕様なのかもわからないのですが、 どなたか解決法をご存知でしたら教えていただけないでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- namadollar
- ベストアンサー率0% (0/0)
MsgBox "データ範囲は" & Sheets("Sheet1").Range("データ").Address & "に変更されました" Sheet1の部分は「データ」が含まれるシート名に変更して下さい。
- hana-hana3
- ベストアンサー率31% (4940/15541)
Range("データ").Address で、範囲が取得出来ます。
お礼
hana-hana3さん、 早速ありがとうございます。 Range("データ").Addressを試してみましたが、どこにどのように記述すればよいのかいまいちわかりません。 MsgBox "データ範囲は" & Range("データ").Address & "に変更されました" としたところ、定義エラーになり、 Dim DataAddress As Range DataAddress = Range("データ").Address なども試してみましたがダメでした。 webで見つけた以下の名前の定義ではなくシート名を指定する方法ではできましたが、 上記でやるにはどうしたらいいのでしょうか。 MsgBox "データ範囲は" & Worksheets("シート名").UsedRange.Address & "に変更されました" すみませんがよろしくお願いします。