あるセルから切り取って別のセルに貼り付ける Excel VBA コード

あるセルから切り取って別のセルに貼り付ける Excel VBA コード

VBA を使用して Excel でコードを設定して、列 "H" から "0" より大きいセルをコピーし、その内容を列 "G" のセルに貼り付けようとしています。たとえば、"H2" が "0" より大きい場合は切り取って "G2" に貼り付ける、などです。うまくいく方法が見つからないようです。どなたか助けていただければ幸いです。

答え1

VBA を使用してコピー アンド ペーストする方法については、次のページを参照してください。

Sub Copy_paste()
    ThisWorkbook.Sheets("Sheet1").Range("A1").Copy
    ThisWorkbook.Sheets("Sheet1").Range("B1").Select
    ThisWorkbook.Sheets("Sheet1").Paste
End Sub

かなり単純なはずですが、「A1」に置かれたものはコピー元であり、「B1」に置かれたものはコピー先です。ところで、カットの代わりにコピー.Copy を .Cut に置き換えるだけです。

より大きいなどのロジックに関しては、上記で示したコピー/貼り付け方法の周りにいくつかの論理演算子を追加するだけです。たとえば、A1 が 2 より大きい場合に A1 を B1 にコピーするには、次のようにします。

Sub Copy_paste()
    If ThisWorkbook.Sheets("Sheet1").Range("A1") > 2 Then
        ThisWorkbook.Sheets("Sheet1").Range("A1").Copy
        ThisWorkbook.Sheets("Sheet1").Range("B1").Select
        ThisWorkbook.Sheets("Sheet1").Paste
    End If
End Sub

注記

また、セルはさまざまな方法で参照できることにも注意してください。すべてが同じワークブック内で行われる場合、以下はすべて同義です。

  • ThisWorkbook.Sheets("Sheet1").Range("A1")
  • 範囲("'Sheet1'!A1")
  • ThisWorkbook.Sheets("Sheet1").Cells(1,1)
  • シート("シート1").セル(1,1)
  • シート("シート1").範囲("A1")

関連情報