アンリは、ワークシートの現在の位置を離れることなく、ソースセルに含まれるデータを宛先セルにコピーしたいと考えています。

つまり、現在の位置をV104のままにせずに、セルA1からセルAE459にコピーしたいと考えています。彼はそのような編集さえ可能かどうか疑問に思います。

もちろん、これに対する明らかなアプローチは、数式= A1をセルAE459に単純に入れることです。次に、Excelは2つのセルが等しいことを確認します。ワークシートで2番目のウィンドウを開いて、そのウィンドウ内のコピーを処理することもできます。元のウィンドウで選択されたセル(セルV104)は変更されません。

ただし、実際に「コピー」操作を実行する場合は、2番目のウィンドウを開かずに、マクロを使用する必要があります。

マクロ内のあるセルから別のセルへのコピーはかなり簡単です。たとえば、次の例では、現在選択しているセルに影響を与えることなく、セルA1の内容をAE459にコピーします。

Sub CopyCell1()

'   Copy the cell value to destination cell     Range("AE459") = Range("A1")

End Sub

セルA1にある数式をコピー先にコピーする場合は、コピーの実行方法を変更する必要があります。具体的には、宛先範囲をパラメータとして使用するCopyメソッドを使用する必要があります。

Sub CopyCell2()

'   Copy the relative formula to destination     Range("A1").Copy Range("AE459")

End Sub

もちろん、これらのマクロの欠点は、静的であるということです。つまり、セルA1からセルAE459にのみコピーします。コピーのニーズが異なる可能性がある場合は、VBエディターの[イミディエイト]ウィンドウでタスクを実行することを検討してください。エディターをポップして開き、適切なマクロから1行をウィンドウに入力するだけです。その後、コピーが完了し、選択したセルに影響を与えることなく、エディターを閉じることができます。

マクロのソースと宛先に少し柔軟性を与えるもう1つの方法は、マクロ(マクロ)でユーザーにソースと宛先の入力を求めることです。次のマクロはこのアプローチを採用しています。

Sub CopyCell3()

Dim SrceCell As String     Dim DestCell As String

SrceCell = InputBox("Copy From Cell ...")

DestCell = InputBox("Copy To Cell ...")

Range(DestCell) = Range(SrceCell)

End Sub

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

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

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