- 締切済み
エクセルのシート自動作成
アサヒライジング ****://db.netkeiba.com/horse/2003102338/ イクスキューズ ****://db.netkeiba.com/horse/2004100763/ フレンチビキニ ****://db.netkeiba.com/horse/2002100626/ 例えば競争馬リストとゆうシートを作成し上記のようなリストがあります。 上記では3頭のアドレスが表示されていますが3頭分の1頭ずつのシートを自動で作成する方法は無いでしょうか。 ActiveWorkbook.Worksheets.Add.Name = "uma1"でumaとゆう名のシートが挿入される事は分かりましたが。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yokomaya
- ベストアンサー率40% (147/366)
回答No.2
3と直接書きましたが通常件数が不明のときはRange("A65535").end(xlup).rowを用います。これで頭数がいくつでも大丈夫なはず。 もうひとつはNextの前に処理を書きます。通常は別のSubにその別処理を記述してNextの前の行からCallなどを用いて呼び出すと読みやすいかと。
- yokomaya
- ベストアンサー率40% (147/366)
回答No.1
Sub シート3枚() Set st = ActiveSheet For i = 1 To 3 ActiveWorkbook.Worksheets.Add.Name = st.Range("A" & i) Next End Sub A1からA3にリストがあると仮定しています。 ポイントは挿入されるとRangeの参照するシートが変動してしまわないように変数stに今のシートを覚えさせています。
お礼
回答ありがとうございます。早速やってみました。見事にシートが自動作成されました。 もう二つお聞きしても良いでしょうか。 自動作成の際に競馬の出走馬が18頭フルのときは For i = 1 To 18 で18頭分シートが作成されますが、例えば出走馬が12頭のときに12頭分のシート作成後に処理を終了させる方法と、ひとつのシートの自動生成後に別の処理をしてその後に次のシートを作成する方法はないでしょうか。