• ベストアンサー

セルの項目をシート名にしたい

はじめまして、vba初心者の者です。 セルB3から始まるB列にある、 項目を各シートの名前にしたいです。 セルB列のセルの中身がnullになれば終了という動作。 例えば。 セルB3に「山田」という文字列があれば、Sheet1は山田にする。 セルB4に「佐藤」という文字列があれば、Sheet2は佐藤にする。 よろしくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>Sheet1は山田にする。 どのシートを山田にしたらいいのか、どのシートは次の佐藤にしたいのか、どういう対応とか関係とか目印とかあるんでしょうか。 それとも「(あるものを)山田にしたい」が間違いで、山田シートやニューブックをただ新しく作ればよかっただけですか。 sub macro1()  dim h as range  dim s as long, i as long  s = worksheets.count + 1 ’シートを作る  for each h in range("B3:B" & range("B65536").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

kalafina2
質問者

補足

ご回答ありがとうございました。 訂正があります。 B3と記載しましたがC3でした。 例、 1、ブック1のSheet1に文字列の「山田」や「佐藤」のセルがあります。 2、ブック2は新規ブックです。 3、ブック1の最初のセルC3の文字列「山田」を、ブック2のSheet1を「山田」という名前のシート名にします。 4、ブック1の次のセルC4の文字列「佐藤」を、ブック2のSheet2を「佐藤」という名前のシート名にします。 5、ブック1の次のセルC5、C6、C7と繰り返していき文字列がなくなるまで続けます。 あとご教授頂いたソースを実行したところオブジェクトエラーになりました。 >'シートを作る > For Each h In Range("C3:C" & Range("B65536").End(xlUp).Row) > Worksheets.Add after:=Worksheets(Worksheets.Count) ここがエラーになりました。>> ActiveSheet.Name = h.Value > Next よろしくお願い申し上げます。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

>あとご教授頂いたソースを実行したところオブジェクトエラーになりました。 ご自分の直し間違いです。 間違い: > For Each h In Range("C3:C" & Range("B65536").End(xlUp).Row) 正解:   For Each h In Range("C3:C" & Range("C65536").End(xlUp).Row) 他は回答のままで、アナタのヤリタイ通りになっています。

kalafina2
質問者

お礼

ご指摘ありがとうございます。 無事動作しました。 丁寧に教えて頂きありがとうございました。

  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

新しいシートを追加して名前を変更するVBAです。 Sub Macro1() Dim WS As Worksheet Set WS = Worksheets("Sheet1") ★ For i = 3 To Cells(Rows.Count, "B").End(xlUp).Row Sheets.Add After:=Worksheets(Worksheets.Count) Worksheets(Worksheets.Count).Name = WS.Range("B" & i) Next End Sub ★の部分はデータを入力しているシート名に変更して下さい。

kalafina2
質問者

補足

早速のご回答ありがとうございます。 補足忘れてしまいましたが、 B3から始まる文字列のあるブックと、 文字列をシート名にするブックは、 別ブック(ブックがデータ参照元と貼り付け元の2つ存在してます。)になります。 vbaで作成可能でしょうか? 何卒よろしくお願い申し上げます。

関連するQ&A

専門家に質問してみよう