Szilviaは、セルの選択セットを作成して、連続しない範囲のセルを選択することができます。 Ctrl + Cを使用してこれらのセルをコピーしようとすると、Excelは「このアクションは複数の選択では機能しない」と通知します。 Szilviaは、隣接していない範囲をコピーしてから、セルが元の選択と同じ相対位置になるようにその範囲を貼り付ける方法があるかどうか疑問に思います。

どうやら、連続した範囲のみをコピーして貼り付けることができるというこの制限は、Excelが機能するように設計されている方法です。連続していない範囲をコピーして貼り付ける唯一の方法は、マクロを使用することです。マクロは、選択範囲内の各セルをステップスルーし、ターゲットアドレスを基準にして貼り付けます。次に例を示します。

Sub CopyPasteCells()

Dim sTemp As String     Dim sTarget As String     Dim c As Range     Dim pasteRng As Range

sTemp = InputBox("Target cell?")

sTarget = Trim(sTemp)

If sTarget > "" Then         Set pasteRng = ActiveSheet.Range(sTarget)

For Each c In Selection             c.Copy             pasteRng.Range(c.Address).PasteSpecial xlPasteValues         Next     End If     Application.CutCopyMode = False End Sub

マクロを使用するには、セルの選択セットを作成するだけです。次に、マクロを実行して、貼り付けの対象セルを指定します。セルは、現在のワークシートのそのターゲットセルを基準にして貼り付けられます。

マクロはエラーチェックをほとんど行わないことに注意してください。たとえば、完全に偽のターゲットセルアドレスを入力すると、マクロは要求に対応しようとします。 (ターゲットアドレスが偽物すぎると、エラーメッセージが表示されます。)

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(5228)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。