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")