- 締切済み
2つのvbaを統合したい
はじめまして、vba初心者のものです。 よろしくお願いします。 以前こちらに質問させて頂いたことがあります。 その以前質問して回答して頂いた2つのソースを一つに統合したいです。 1、参照元ブックと貼り付けブックの2つが存在します。 2、参照元ブックの名前の指定する必要はあると思いますが、 貼り付け先ブックは新規作成にしたいです。 3、「▼質問タイトル:vba ブック間でシート名のコピーをするには」の動作は、 貼り付け先ブックの各シートに反映されるようにしたいです。 何卒よろしくお願いします。 「▼質問タイトル:vba ブック間でシート名のコピーをするには」 http://okwave.jp/qa/q8727280.html sub macro1() dim wb1 as workbook dim w2 as worksheet dim i as long ’2つのブックは既に開いている事 set wb1 = workbooks("オリジナルブック.xlsm") ’拡張子まで正しく指定する事 set w2 = workbooks("貼り付け先ブック.xlsx").worksheets(1) ’同上 ’準備 w2.range("A:A").clearcontents w2.range("A:A").numberformat = "@" w2.range("A1") = "シート名一覧" ’転記 for i = 1 to wb1.worksheets.count if wb1.worksheets(i).name = "Sheet1" then exit for w2.range("A65536").end(xlup).offset(1) = wb1.worksheets(i).name next end sub 「▼質問タイトル:セルの項目をシート名にしたい」 http://okwave.jp/qa/q8727637.html sub macro1() dim h as range dim s as long, i as long s = worksheets.count + 1 ’シートを作る for each h in range("C3:B" & range("C65536").end(xlup).row) worksheets.add after:=worksheets(worksheets.count) activesheet.name = h.value next ’別のブックにする for i = worksheets.count to s step -1 worksheets(i).select false next i activewindow.selectedsheets.move end sub
- みんなの回答 (2)
- 専門家の回答
お礼
ありがとうございます。 ただ、まことに申し訳ございません。 私の伝え間違いがありました。前回ご指摘いただいているのに申し訳ございません。 参照元ブックの各シートを張り付け先ブックの各シート内のセルにシート一覧するのは、 理想としてた動作でした。 しかし参照元ブックのシート1にあるC3から始まるC列にある、 項目を各シートの名前にしたいです。 セルB列のセルの中身がnullになれば終了という動作にしたいです。 例えば。 セルB3に「山田」という文字列があれば、Sheet1は山田にする。 セルB4に「佐藤」という文字列があれば、Sheet2は佐藤にする。 例、 1、ブック1のSheet1に文字列の「山田」や「佐藤」のセルがあります。 2、ブック2は新規ブックです。 3、ブック1の最初のセルC3の文字列「山田」を、ブック2のSheet1を「山田」という名前のシート名にします。 4、ブック1の次のセルC4の文字列「佐藤」を、ブック2のSheet2を「佐藤」という名前のシート名にします。 5、ブック1の次のセルC5、C6、C7と繰り返していき文字列がなくなるまで続けます。 ご回答頂いたのに私の勉強不足のために二度手間になり申し訳ありません。 何とぞよろしくお願い申し上げます。