2014年09月08日

シートをコピーして、かつシートの名前も変える(エクセルVBA)

頭の体操見たいですが。


エクセルVBAでシートをコピーする事はよく有ります。
例えば、月別にシートを作りたい場合、ひな形になるシートを用意して置いて、

Sheets("ひな形").Copy After:=Sheets("Sheet3")

のような書き方ですね。
別のブックにコピーするなら、
 Sheets("ひな形").Copy After:=Workbooks("Book3").Sheets("Sheet2")

シートのコピーメソッドについて、ここでは細かく書きませんが、
今回書きたいのは、コピーした先のシートの名前を変えたい場合です。
例えば、上の場合、ひな形をコピーしたら「1月」とか「2月」・・とか名前を変えたいですね。

シートを追加した場合ですと、
    Dim WS  As Worksheet
    Set WS = Worksheets.Add()
    WS.Name = "1月"
のように、Addメソッドを使用した時にオブジェクトを取得できるので
簡単にシート名を変える(追加だから付けるですね)事が出来るのですが、
Copyではそうは行きませんね。

そこで、よく観察して見ると、
実はシートをコピーすると、コピー先のシートが必ずアクティブになりますね。
(普通にエクセルでシートをコピーしてもそうですね)

だから、
Sheets("ひな形").Copy After:=Sheets("Sheet3")
ActiveSheet.Name ="1月"

のように書くと、コピー先のシート名が変えることが出来るのですね。

これは移動(Move)でも同じ事です。

なんだか、頭の体操ですね。



トラックバックURL

この記事へのコメント

1. Posted by dunia remaja   2015年08月10日 00:04
私はこれは良いポストだと思います。ない毎日私は非常にきれいに、このように配置された書き込みを見ることができました。
2. Posted by jasa fotocopy 24 jam   2015年08月27日 23:21
こんにちは...私はあなたのウェブサイトを見つけることは非常に幸運です。これは非常によく書かれたポストです。ポストをありがとう。私は間違いなく戻って行くだろう。
3. Posted by Blog Remaja   2015年09月25日 04:43
それを良い記事を作成し、おかげで共有したいです
4. Posted by Blog Remaja   2015年09月25日 04:44
それを良い記事を作成し、おかげで共有したいです

コメントする

名前
URL
 
  絵文字