[Excel][VBS]rangeとcellsの相互変換

Excelである程度複雑なVBSプログラムを作っていると、range系とcells系を変換したい時が出てきます。相互変換もできるのですが、その方法をあまり明確に書かれているページが見つからなかったので、自分でも上げてみる事にしまたし。

変換部分は、独立した関数として書いてありますが、関数化する必要はありません。関数化すると、配列を使用するなどしないとならないので、あまり分かりやすく無いですね。

Cells系(R1C1系)をRange系(A1系)に変換したいなら、

Cells(rowの値, clumの値).Address(False, False)

で出来ます。Addressの中を、Falseにすると、D3などと相対指定で帰って来ます。Trueにすると、$D$3と絶対指定で帰ってきます。

Range系(A1系)をCells系(R1C1系)に変換したいなら、

Range(rangeの値).Row
Range(rangeの値).Column

で出来ます。絶対表現で帰ってきます。相対指定にしたいなら、ConvertFormulaを使って変換して上げる必要があります。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする