マクロで可能ならその方法も教えて頂ければと思います。
上記の方法、もしくはこのような情報が掲載されているサイトを教えて下さい。
※エクセル上級者向けサイト等
単純な選択範囲のコピーではなく、離れたセル領域を複数選択してのコピーと受け取りましたがよろしいでしょうか?
通常は複数領域を選択してのコピーはできないからだと思います。
マクロで行うことにします。ただし、ワンタッチではこれも無理です。なぜなら、①どれを、②どこに、の二つのことを指定しなければならず、これをセルカーソルで一度に指定することはできないからです。
よって、ここでは、2段階で場所を指定して、それぞれにマクロの起動を行う方法を紹介します。
下記のようにマクロを準備して、
①まずコピーしたい領域を好きなように選択し、マクロ「multiRangeCopy」を起動します。(特に変化なし。しかし、この範囲を覚えてくれます)
②次に貼り付けしたい目的のシートを表示し、貼り付けセル場所の左上基準のセルを選択してマクロ「multiRangePaste」を実行します。
これでコピー元と同じセル相対位置で目的の場所にコピーされます。
'======================================
'モジュールレベルの宣言
Dim fromRange As Range
Dim toRange As Range
Dim myCell As Range
Dim myBaseRow
Dim myBaseColumn
'複数領域一括コピー
Sub multiRangeCopy()
Set fromRange = Selection
myBaseRow = Selection.Cells(1).Row
myBaseColumn = Selection.Cells(1).Column
MsgBox "これにOKを応答してから、コピー先の開始位置を指定し、multiRangePasteマクロを起動すると複数領域のコピーが行われます。"
End Sub
'複数領域一括貼り付け
Sub multiRangePaste()
Set toRange = ActiveCell
For Each myCell In fromRange
myCell.Copy
ActiveSheet.Paste toRange.Cells(1).Offset(myCell.Row - myBaseRow, myCell.Column - myBaseColumn)
Next
End Sub
'======================================
マクロの起動にショートカットを登録してCtrl+Shift+文字、で起動すれば操作がもっと楽になるでしょう。(Ctrl+Shift+Cを複数領域コピー、Ctrl+Shift+Vを複数領域貼り付けに割り当てると、通常のコピーCtrl+Cと通常の貼り付けCtrl+Vとの対応ができ、わかりやすいと思います)
また、モーダレスのユーザフォームを利用してふたつのマクロの間をつなぐことも考えられますが、必ずしもいいともわからないので、まずは単純に二つの手順による上述のものが妥当かと思います。
※一つ注意があります。コピー元の複数セルを選択する際に、最も左上の部分を最初に選択してください。(これが基準になります)
URLはダミーです。
コメント(0件)