質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

7082閲覧

エクセルVBAにてリスト名から一括でシートを生成したいのですが

xxakatukixx

総合スコア11

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2019/02/18 12:30

タイトル通り、エクセルVBAにてシート1のA2セル以降のA列にずらっとリストを作成し、それを元にシート2を原本としたシートをリスト名分複製・その時シート名は各リストの名前とし、生成したシートのF9セルにもリスト名を入力したいです。

今現在のVBAのコードは以下になります
Name=リストにした各セルの名前
シート1=リストがあるシート
シート2=複製したい原本シート。これのF9にもシート1のNameを代入したい

Sub Name_to_Make()
Dim Name As Range
For Each Name In Worksheets("シート1").Range("A2:A52")
Worksheets("シート2").Copy After:=Worksheets(Worksheets.count)
With ActiveSheet
.Name = Name.Value
.Range("F9)=シート2.Value
Endwith
Next Name
End Sub

このコードで上手くいくことは確認できたのですが、現在リストのA2からA52を見ていますが、
この長さを可変としたいのです(都度リストのName数が違う)
しかし、今のコードだと強制的にA52迄見てしまうため、必ずエラーメッセージと共に要らない”シート2(2)”も生成されてしまいます。
ここを可変にする為の(エラーにならない)コードが知りたいのですが、どう書けば良いのか分かりません。

調べてみたところ、IfやDo Loopを使用するのかな、とは思うのですがそれらの引数などの指定が上手くいかずエラーになってしまいます。。。

どなたかご教示いただければと思います、よろしくお願い致します。

※また、リストそのものも元となる一覧から必要なNameのみチェックし、それをA列に出力し、その上でこのコードを走らせることは可能でしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これでどうでしょうか。
試してみて下さい。

vba

1Sub Name_to_Make() 2 Dim Name As Range 3 Dim r As Integer 4 r = Cells(Rows.Count, 1).End(xlUp).Row 5 For Each Name In Worksheets("シート1").Range(Cells(2, 1), Cells(r, 1)) 6 Worksheets("シート2").Copy After:=Worksheets(Worksheets.Count) 7 With ActiveSheet 8 .Name = Name.Value 9 .Range("F9") = Name.Value 10 End With 11 Next Name 12End Sub 13

投稿2019/02/18 12:46

zbat

総合スコア52

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xxakatukixx

2019/02/21 06:51

ご回答ありがとうございました。無事にシートを複製することが出来ました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問