ULALA'Sブログ

ULALA'Sブログ

2020年09月02日
XML
カテゴリ: 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の記事は ​​ こちら ​ ​
​​​​





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2020年09月02日 23時20分32秒
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

×

プロフィール

ULALA13

ULALA13

カレンダー


© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: