Dim myRange as Range
myRange = Range("A1:C3")
Dim currentCell as Range
currentCell = Range.firstCell ' そんなメソッドは無い
myRangeオブジェクトからセルA1のRangeオブジェクトを取得するにはどうすれば良いのでしょうか?
Range の設定は Set が必要ですが、
Sub SelectLeftTopCell() Dim myRange As Range Set myRange = Range("A1:C3") Dim currentCell As Range Set currentCell = myRange.Resize(1, 1) currentCell.Select End Sub
という感じでどうでしょうか。
currentCell = myRange.firstCell ' そんなメソッドは無い
方法1
currentCell = Range("A1:C3").Range("A1").Value '選択範囲中でA1の位置ということ
方法2
currentCell = Range("A1:C3").Item(0).Value 'コレクション中の先頭ということ
でもいけるかと。
方法1の補足
currentCell = Range("B1:C3").Range("A1").Value
だったら、B1が基点(A1)になり、B1を返します。
たぶん。
Set MyRange = Union(Range("A1:C3"), Range("B2:D5") )
のような複数の領域を合わせた場合だと、Resize でオブジェクトエラーとなってしまいました。
その際にもHALSPECIAL さんの提示された方法だと機能しますね。
Range("B1:C3").Range("A1")
という記述は座標体系が二重になるので直感的にはわかりずらそうけれど、
覚えておくと便利な方法のようです。
バグ発見&フォローありがとうございます!
HALSPECIALさまの方法がベストのようですね
方法1はコメントが無いと難しそう。
方法2がどんぴしゃ!という感じです!
お二方さまとも、終了後なのにご親切に教えていただきまして、
本当にありがとうございます!!