前ページで書いたように、多くのユーザーは「
A1参照形式とR1C1参照形式の変換」を行う機会は少ないと思います。それよりも、A1参照形式のままで「
相対参照形式と絶対参照形式の変換」を行うケースが多いでしょう。そのときに指定するのが、4番目の引数ToAbsoluteです。しかし、ヘルプでは、そのToAbsoluteの解説が間違っています。
上はExcel 2003のヘルプで、下がExcel 2007のヘルプです。どちらも内容は同じです。おそらく、内容が合っているかどうかはチェックしていないのでしょうね。どちらのヘルプにも、次のように書かれています。
ToAbsolute
省略可能です。変換後の参照の種類を指定します。XlReferenceStyle クラスの定数を使用します。
XlReferenceStyleクラスの定数とは、前ページで書いた
| 定数 |
値 |
意味 |
| xlA1 |
1 |
A1参照形式 |
| xlR1C1 |
-4150 |
R1C1参照形式 |
|
です。どう考えても「
相対参照形式と絶対参照形式の変換」を指定できません。参考までに、VBEのオブジェクトブラウザで定数を調べてみましょう。
引数ToAbsoluteに指定するのは、XlReferenceStyleクラスの定数
ではありません。オブジェクトブラウザでXlReferenceStyleの下に見えている
XlReferenceTypeクラスの定数です。
| 定数 |
値 |
意味 |
例 |
| xlAbsolute |
1 |
行列とも絶対参照 |
$A$1 |
| xlAbsRowRelColumn |
2 |
行だけ絶対参照 |
A$1 |
| xlRelRowAbsColumn |
3 |
列だけ絶対参照 |
$A1 |
| xlRelative |
4 |
行列とも相対参照 |
A1 |
|
したがって、相対参照のアドレスを絶対参照に変換するには、次のように考えられます。
ConvertFormula(Formula:=変換元の数式を指定します(必須), _
FromReferenceStyle:=変換元の参照形式(A1/R1C1)を指定します(必須), _
ToReferenceStyle:=参照形式(A1/R1C1)を変更しないので省略, _
ToAbsolute:=XlReferenceTypeクラスの定数を指定します, _
RelativeTo:=今回は省略)