Excelのこととか色々

Excel のこととか楽天とか いろいろ書いてみます・・・

【VBAスタンダードに挑戦!】検索結果の操作(Range/Resize)

【VBAスタンダードに挑戦!】

f:id:tuna-kichi:20200614200940p:plain

 

本日の5分勉強の内容

 

 

********************************************************

Find で指定のデータが見つかった後にできる操作の一例です。

 f:id:tuna-kichi:20200814132053p:plain

Range

Range(左上セル, 右下セル)

Dim IDR As Range 'ID列の Range

 'この行を実行すると IDR に Range("A8") の情報も格納される
 Set IDR=Columns(1).Find(What:="R") 

 'その行の 列A ~ C をコピーして、セルE2にコピーする
 Range(IDR, Range("C8")).Copy Range("E2")

 

 

                      

Resize

セル番地. Resize(行数, 列数)

セル番地は起点となるセル

Resize の引数の行数、列数は起点セルを含めての行/列数を指定する

 

Dim IDR As Long 'ID列の Row
Dim 
LastC As Long '表の最終列を表す

 '列Aから「R」を探してセル番地を取得する
 Set IDR =Columns(1).Find(What:="R"). Row

 

 '一行目の最終列を取得する
 LastC = Cells(1, Columns. Count). End(xlToLeft). Column

 

 'Find で取得した行番号を利用して、Resize でコピーする範囲を指定する
 Range(IDR,  Resize(1, LastC). Copy Range("E2")

 

                      

 

 

Find でセル番地を取得できることは初めて知りました。

なかなか便利そうです。

 

Resize もいままで良く分からなかったので、避けてきましたが、

Offset と同じように使用できそうですね。

 

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/