![見出し画像](https://assets.st-note.com/production/uploads/images/99732497/rectangle_large_type_2_e3bdeca219113c87763ab2ad97817149.jpeg?width=1200)
013_質問:【自己責任】ChatGPTにまたマクロを作ってもらう。エクセルの複数のシートに一気に指定の名前をつける方法
前回、AIくんにマクロを作らせた質問者
仕事で使ったら、花火のように良い感じに分解されました。
そこで味をしめたわたくしは、さらなる要求をAIにお願いしてみるのだった。
![](https://assets.st-note.com/img/1678224671754-aMVIA2hwuk.png?width=1200)
今回の結論と追記
自分のパソコンでテストしたら、ふつうに出来たのに会社で実際にやったらエラー番号:91がでました。
以下の↓マクロの使用は自己責任でおねがいします。
と、予防線を貼っておく
今回の質問形式
日本語で質問しますので、以下の形式で回答してください。
1.【今回の質問・またはお願い】
エクセルの複数のシートに一気に指定の名前をつける方法
2.【質問の英訳】
3.【英訳に対する英語の回答】
4.【英語の回答の日本語訳】
今回の質問形式2
日本語で質問しますので、以下の形式で回答してください。
1.【今回の質問・またはお願い】
用意したリスト_ExcelのBook1のA列にリストがあります。
そのリストをもとに、指定したエクセルファイルの複数シートに名前をつけるマクロを作ってください。
2.【質問の英訳】
3.【英訳に対する英語の回答】
4.【英語の回答の日本語訳】
AI回答
【今回の質問・またはお願い】
エクセルの複数のシートに一気に指定の名前をつける方法
【質問の英訳】
What is the way to assign specified names to multiple sheets in Excel all at once?
【英訳に対する英語の回答】
There is a way to assign specified names to multiple sheets in Excel all at once by using VBA macro. Here is an example code to assign sheet names "Sheet1", "Sheet2", "Sheet3" to the first three sheets in the active workbook:
Sub RenameSheets()
Dim i As Long
Dim ws As Worksheet
↑あ、コードの一部が漏れてます。
Sub RenameSheets()
Dim i As Long
Dim ws As Worksheet
For i = 1 To 3 'Rename the first three sheets
Set ws = ThisWorkbook.Sheets(i)
ws.Name = "Sheet" & i
Next i
End Sub
You can modify this code by changing the sheet names and the number of sheets to rename as needed.
【英語の回答の日本語訳】
Excelの複数のシートに一気に指定の名前をつける方法は、VBAマクロを使用する方法があります。以下は、アクティブなブックの最初の3つのシートにそれぞれ「Sheet1」「Sheet2」「Sheet3」という名前をつける例のコードです。
手動でコードはつけ直しました↓
Sub RenameSheets()
Dim i As Long
Dim ws As Worksheet
For i = 1 To 3 'Rename the first three sheets
Set ws = ThisWorkbook.Sheets(i)
ws.Name = "Sheet" & i
Next i
End Sub
必要に応じて、シート名やリネームするシートの数を変更して、このコードを修正することができます。
……拡張機能のコピー機能便利ですけど、手動でコードはつけ直しです。
続いて質問2
【今回の質問・またはお願い】
用意したリスト_ExcelのBook1のA列にリストがあります。そのリストをもとに、指定したエクセルファイルの複数シートに名前をつけるマクロを作ってください。
以下は、A列にシート名を並べたExcelファイルの名前が"List.xlsx"とする場合のサンプルコードです。
……コードがぼろぼろ余白に零れたので、また手動でつけ直しました。
Sub RenameSheets()
Dim wb As Workbook
Dim list_wb As Workbook
Dim list_ws As Worksheet
Dim sheet_name As String
Dim i As Long
'Open the target workbook
Set wb = Workbooks.Open("C:\example\example.xlsx") 'Change the file path as needed
'Open the list workbook
Set list_wb = Workbooks.Open("C:\example\List.xlsx") 'Change the file path as needed
Set list_ws = list_wb.Sheets("Sheet1") 'Change the sheet name as needed
'Loop through the list and rename sheets
For i = 1 To list_ws.Cells(Rows.Count, 1).End(xlUp).Row
sheet_name = list_ws.Cells(i, 1).Value
wb.Sheets(i).Name = sheet_name
Next i
'Close the list workbook
list_wb.Close savechanges:=False
'Save and close the target workbook
wb.Save
wb.Close savechanges:=True
End Sub
このコードを実行すると、指定したExcelファイルのシートに、"List.xlsx"のA列に記載されているシート名が順番に割り当てられます。ファイルパスやシート名は必要に応じて変更してください。
![](https://assets.st-note.com/img/1678225848085-wIZOiW1oM6.png?width=1200)
コードも丸ごとコピーできるようにして欲しいのはわがままだろうか。
この記事が気に入ったらサポートをしてみませんか?