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

などとしておけばいい。

「,」以下はコピーしたファイルの名前である。必ず所在地を書いておく。

酒巻 修平

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です