[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート名を作成しながら中身のフォーマットも同時作成したい。』(ぴょん田)
初めまして。
下記のようなマクロコードがあります。
シート名に、したい名前をセルに入力するとそのシート名を
自動作成してくれるのですがこれに、決まったフォーマットの
シート内容を持たせた状態で作成することは可能ですか?
また、A列に関しては、シート名によって入る内容がことなるのですが
これも、シート作成を同時に作成したいと考えているのですが
かのうですか???
シート名を、作成するのと中身のフォーマットは別々の方が良いですか?
Sub シート作成()
Application.DisplayAlerts = False Dim i As Long, sh As Worksheet For Each sh In Worksheets If sh.Name <> "シート名" Then sh.Delete End If Next sh
With Sheets("シート名") For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row Worksheets.Add ActiveSheet.Name = .Cells(i, 1) Next i End With End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
固定フォーマットのシートを量産する場合のよくある手は、フォーマットは手作業で作成済みで、データは入っていないシートを用意しておいて、シートコピーしてから値をセットしていく、という方法です。複数のフォーマットならば、複数のひな形シートを用意しておくだけです。同様に、ブック丸ごとをひな形として、ブック(ファイル)のコピーを行ってからデータをセットしていく、という場合もあります。
(???) 2017/02/24(金) 14:23
>決まったフォーマットの シート内容を持たせた状態で作成することは可能ですか?
もちろん可能ですね。 テンプレートシートを作っておき、現在、 Worksheets.Add としているところを そのシート.Copy After:=・・・ といったようにコピーすればOKですね。 このテンプレートシートは非表示にしておいて、処理の最初で表示してシートコピーの元ネタにし 処理の最後に非表示に戻す ということも考えられますね。
>また、A列に関しては、シート名によって入る内容がことなるのですが >これも、シート作成を同時に作成したいと考えているのですが >かのうですか???
もちろん、可能ですね。 具体的には、出来上がるシートのA列のどこに、どんなものをいれたいかという要件によって 手法が変わってくると思いますが。
>シート名を、作成するのと中身のフォーマットは別々の方が良いですか?
文章の意味がよくわかりませんが、もし、テンプレートからのシート作成と作成したA列に何か書き入れる ということを言っておられるなら、これらは」分ける必要はなく、同時に処理したらいいと思います。
★ところで、現在は、シート名シート以外をまず削除し、あらためてシートを追加しているわけですね。 この作り上げたものを何に使うのかが不明ですが、必要シートだけを持った新規ブックとして作り上げることもできます。
(β) 2017/02/24(金) 14:34
所詮、手動の自動化しているだけだから、
「難しい呪文がいっぱいあるのでは?」と、
あまり構えなくてもいいと思いますよ。
まずはその操作を、マクロの記録して
どんなコードになるか探って見てはいかがでしょうか?
>また、A列に関しては、シート名によって入る内容がことなるのですが
>これも、シート作成を同時に作成したいと考えているのですが
>かのうですか???
可能です。が、、、、
「もし、○○が△△の時は××する。」
というような条件により判断して作業を変えるのは、
エクセル君はしてなくて操作者が条件判断しているので、
マクロの記録には記録されません。
そういう時は、
If ○○=△△ Then ××
と、英語のような、数式のような文章を書くことになります。
参考URL>>
http://www.eurus.dti.ne.jp/~Yoneyama/Excel/vba/vba_if_select.html#if_then
でも、まずは、(あなたにとって)意味不明なマクロコードは捨て去って、
1)日本語で作業の流れを書く
2)手動で操作し、マクロの記録をしてみる
3)やりたい操作がVBAという言語ではどう表現されるかをさぐり、
日本語の作業の流れを翻訳して行く作業から始めることをお勧めします。
たぶん、こういう指示書を書いてくれたら、
エクセル君の代わりに僕でも作業が出来ると思います。
つまり、文書で他人に作業内容を伝つたるよう(今回の場合はエクセル君)に書いてあるのが、
プログラムのコードになります。
名前でシートの内容が変わるなら、
別のブックに雛型集を用意しておいて、
名前でシートを選択してコピーしてくれば、
いいんじゃないですかね?
まずは、大抵のことはできるので、どうやるかを決めてくださいね^^
(まっつわん) 2017/02/24(金) 14:55
要はブックの初期化をしたいのかな?
雛型集をテンプレートのファイル形式で用意しておけば、
マクロ要らないかもですね。。。
不要なシートを選んで削除するか、
必要なシートをさらに新しいブックにコピーするか、
手順の少ない方でやればいいかもですね^^
(まっつわん) 2017/02/24(金) 15:05
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.