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
それを良い記事を作成し、おかげで共有したいです