テーマ:プログラミングあれこれ(230)
カテゴリ:VBA
前回の記事ではFindで見つかったセルに対して
範囲コピーを行い、所定のセルへ張り付ける
ということを行ったが、 今回はResizeによる範囲コピーを行う方法について 記載しようと思う。 -------------------------------------- ①Range.Resize -------------------------------------- ほぼ前回と同様の画像だが 検索する文字を記入し 「検索&コピペ」ボタンを押下する ソース Sub findCopyAndPaste() Dim result As Range Set result = Range("B36:E40").Find(LookAt:=xlWhole, What:=Range("G37").Value) If result Is Nothing Then MsgBox ("見つかりませんでした") End End If ' 見つかったセルを範囲拡張してコピー&ペースト 'Range(result, result.End(xlToRight)).Copy Range("B43") '※ 前回ソース result.Resize(3, 4).Copy Range("B43") End Sub 結果 .Resizeの引数は、、 第1引数:相対行数 第2引数:相対列数 となっており、今回の場合だと 見つかったセル位置から 行数を相対的に3行(自分自身含む) 列数を相対的に4列 に範囲を拡張してコピーした内容を 貼り付け位置配下にペーストする、 といった内容にしている。 別にFindしなくても、セルを直接指定して 範囲をResizeすることも可能 Range("B36").Resize(3, 4).Copy Range("B43") この場合「1-1」~「3-4」が セルにペーストされることになる。 ちなみに、Resizeの引数には行、列ともに マイナス値は指定できない。 Offsetは引数にマイナス指定可能だったが、 Resizeは引数にマイナス指定不可能なので 覚えておいた方が良いかと思う。 Offsetの記事はこちら お気に入りの記事を「いいね!」で応援しよう
Last updated
2020.09.02 23:20:32
コメント(0) | コメントを書く
[VBA] カテゴリの最新記事
|