このようなもの?
Sheet1.Cells(1, 1).Copy
Sheet1.Cells(1, 2).PasteSpecial xlPasteValues
または
selection.Copy
Sheet1.Cells(1,2).Activate
Selection.PasteSpecial xlPasteValues
Copy
パーツ全体をコピーしますが、何を貼り付けるかを制御できます。
Range
同じことがオブジェクトにも当てはまります。
編集
私の知る限り、範囲のテキストのみを VBA オブジェクト (変数、配列など) に割り当てずにコピーする簡単な方法はありません。単一のセルと数値とテキストのみ (数式なし) で機能するトリックがあります。
Sub test()
Cells(1, 1).Select
Application.SendKeys "{F2}"
Application.SendKeys "+^L"
Application.SendKeys "^C"
Cells(1, 3).Select
Application.SendKeys "^V"
End Sub
しかし、ほとんどの開発者SendKeys
は、不安定で予測できない可能性があるため、避けています。たとえば、上記のコードは、マクロが Excel からではなく Excel から実行された場合にのみ機能しVBA
ます。から実行するVBA
と、SendKeys
オブジェクト ブラウザが開きます。これは、VBA ビューで F2 を押したときの動作です:) また、全範囲を表示するには、セルをループして、1 つずつコピーし、1 つずつ貼り付けて、アプリケーション。今考えると、これはやり過ぎだと思います..
配列を使用する方がおそらく優れています。これは、範囲を vba 配列に渡したり戻したりする方法に関する私のお気に入りのリファレンスです:
http://www.cpearson.com/excel/ArraysAndRanges.aspx
個人的には、SendKeys
配列を避けて使用します。配列からアプリケーションにデータを渡すことはできるはずVBA
ですが、アプリケーションについて詳しく知らずに言うのは難しいです..