vba裏技,技,論理 - コピーの方法種々
vbaではその時の状況で複数の手法を取ることができます。コピーの方法も勿論同様です。
① 一番オーソドックスな方法は
Selection.Copy
[d1].Select
ActiveSheet.Paste
ですが、コピー元のコピー状況が継続しているので、
Application.CutCopyMode=False
としてコピーモードを解除しておきます。
[d1]の[ ]はrange(“D1”)と書く代わりに使います。勿論機能します。
違うシートにコピーするには
Selection.Copy
Sheets(2).[d1].Select
ActiveSheet.Paste
と書けばいいでしょう。
② これを簡単にすれは
[d1].Copy [c3]
と書くことができます。
③ もっと簡単にしたいなら
[d1]=[c3]
です。この時に「=」の左辺はコマンドの影響を受けるセルです。逆にする
意図とは違う結果になります。
④ [c3].Copy
[d1].Paste.Special Paste:=xlValues
ここでは価(values)をコピーして貼り付けていますが、
書式のコピーは「xlFormulas」
数式は 「xlFormats」
です。この方法は便利です。
値、書式、数式の全てをコピーするのは
「xlAll」
罫線だけはコピーしないのは
「xlAllExceptBorders」
とします。
⑤ 他には
[c3].Copy Destination:=[d1]
があります。探せばまだ方法があるでしょう。どれかその時に便利の良い方法を取ればいいのです。
⑥ 範囲をコピーするのは
Range([b1],[c3]).Copy
[d4].PasteSpecial Paste:=xlValues
で、[b1]はコピー元の左上、[c3]は右下、[d4]貼り付ける左上を指定します。
勿論「xlValues」は他の指定に切り替えることは可能です。
⑦ シートのコピーは
Sheets(“売上額”).copy after:=sheets(“営業担当者”)
として「after:=」または「before:=」と貼り付け場所を必ずしてしなければならない。
もし「after:=」や「before:=」を書かなければ新たにworkbookができてコピー元のシートだけが貼り付けられます。この場合貼り付け形式は「xlAll」になります。
⑧ ブックのコピー
FileCopy 所在地 & “\3月売上.xlsm”, 所在地& “\4月売上.xlsm”
とする。この場合「所在地」は変数として設定しておく。たとえば
所在地=this.workbook.path
などとしておけばいい。
「,」以下はコピーしたファイルの名前である。必ず所在地を書いておく。
酒巻 修平