- ベストアンサー
R1C1形式ではなく列記号に書き換えたい
マクロの記録でピボットテーブルの範囲を選択する行動を記録したのですが 範囲が「実績!R1C1:R5216C29」と取得されました。 これをR1C1形式ではなく列記号に書き換えたいのですが、 どのような文字列を作ればいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! >範囲が「実績!R1C1:R5216C29」と取得されました は >実績!$A$1:$AC$5216 となるみたいです。 ※ 簡単に確認する方法 ※ まず あるSheet名を「実績」とし、 別Sheetをアクティブにし Excelのオプション → 数式 → R1C1参照形式を使用する に チェックを入れ =実績!R1C1:R5216C29 という数式を入れておきます。 その後 R1C1参照形式を使用する のチェックを外せば 上記数式が表示されます。 ※ R1C1参照形式に慣れている人であれば、すぐにわかるのでしょうが、 当方もほとんど使用しませんので、このような方法で確認してみました。m(_ _)m
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
>マクロの記録でピボットテーブルの範囲を選択する行動を記録した ご利用のエクセルのバージョンによって,具体的に記録されるマクロの書きぶりが違います。 どのバージョンのエクセルで,具体的にどの部分の記述について困っているのでしょうか。 とりあえず,PivotCaches.Createの中の SourceData:=に与える部分について言えば,ふつーにA1形式でもR1C1形式でもどちらの文字列も気にせず使えます。 具体的な対象範囲は「あなたがピボットテーブルのネタにしたいセル範囲」そのものですから,ご自分のワークシートの元データのセル範囲を sourcedata:="実績!A1:AC5216" のように,見たまんまで書いてやればOKです。
お礼
ご回答ありがとうございました。
- WindFaller
- ベストアンサー率57% (465/803)
こんばんは。 ご質問の意味は、どうしたいのかよく分かりませんが、A1方式に換えたいというなら、 例えば、ユーザー定義関数で、このようにすればよいと思います。 '// Function AddressAlt(n As String) Dim ret As Variant If Application.ReferenceStyle = xlA1 Then ret = Application.ConvertFormula(n, xlR1C1, xlA1) Else ret = Application.ConvertFormula(n, xlA1, xlR1C1) End If If IsError(ret) Then 'エラーが返ったら、そのままにする AddressAlt = n Else AddressAlt = ret End If End Function '// 例: A1: 実績!R1C1:R5216C29 =AddressAlt(A1) とすれば、「実績!$A$1:$AC$5216」 が取得できます。 ワークシートの関数でも、Address 関数を使えば出るでしょうけれども、たぶん、配列から数値を取り出して行うように思いますが、何か面倒くさそうです。それなら、返って、Ver.4マクロ関数でありそうな気がします。VBAでは、ConvertFormulaを使います。 もし、画面が、R1C1方式で、出力した 実績!$A$1:$AC$5216 を、 =AddressAlt(R1C1) とすれば、 「実績!R1C1:R5216C29」 と返すことも出来ます。 もし、質問の意味を取り違えていたら、無視して構いません。
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございました。