• ベストアンサー

エクセルのシートの名前をオートフィルする方法

エクセルのシートが「Sheet1」となっていますが、「1月」と名前を変えて、オートフィルなどで、「Sheet2」以降を「2月」「3月」「4月」・・・というように名前を自動でつけて増やすことは出来ないのでしょうか?オートフィルでなくても、設定などであらかじめ新規に開くと「Sheet1」ではなく「1月」「2月」「3月」「4月」・・・とすることでもかまわないのですが。どなたか知っている方がいらっしゃいましたらよろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

オートフィルはセルの値だけのものです。 普通の操作では、できないでしょう。 VBAで Sheet1のA1以下に、オートフィルで 06年1月 06年2月 06年3月 06年4月 06年5月 ・・・ を作る。 標準モジュールに下記を貼り付けて実行。 Sub test01() d = Range("A65536").End(xlUp).Row For i = 1 To d MsgBox Worksheets("Sheet1").Cells(i, "A") Worksheets.Add.Name = Worksheets("Sheet1").Cells(i, "A") Next i End Sub 06年1月以下のシートができます。 コピーして、Sheet2と同じ様式のものを作るなら Sub test02() d = Range("A65536").End(xlUp).Row For i = 1 To d MsgBox Worksheets("Sheet1").Cells(i, "A") Worksheets("Sheet2").Copy After:=ActiveSheet ActiveSheet.Name = Worksheets("Sheet1").Cells(i, "A") Next i End Sub

その他の回答 (2)

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.2

No1.です。 10月以降対応版です。(シートを追加すると自動でシート名がつきます) Private Sub Workbook_NewSheet(ByVal Sh As Object) If Mid(Sheets(Sheets.Count).Name, 2, 2) = "月" Then LASTNAME = Left(Sheets(Sheets.Count).Name, 1) Else LASTNAME = Left(Sheets(Sheets.Count).Name, 2) End If ActiveSheet.Name = (LASTNAME + 1) & "月" Sheets(ActiveSheet.Name).Move After:=Sheets(Sheets.Count) End Sub

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

すでに"1月"というシートがある場合、次のようになります。 Workbookにマクロを割り当ててください。(10月までしか対応していません) Private Sub Workbook_NewSheet(ByVal Sh As Object) LASTNAME = Left(Sheets(Sheets.Count).Name, 1) ActiveSheet.Name = (LASTNAME + 1) & "月" Sheets(ActiveSheet.Name).Move After:=Sheets(Sheets.Count) End Sub

関連するQ&A

専門家に質問してみよう