見出し画像

013_質問:【自己責任】ChatGPTにまたマクロを作ってもらう。エクセルの複数のシートに一気に指定の名前をつける方法

 前回、AIくんにマクロを作らせた質問者

 仕事で使ったら、花火のように良い感じに分解されました。
 そこで味をしめたわたくしは、さらなる要求をAIにお願いしてみるのだった。

感謝の念は伝える。相互理解の努力である。

今回の結論と追記
自分のパソコンでテストしたら、ふつうに出来たのに会社で実際にやったらエラー番号: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列に記載されているシート名が順番に割り当てられます。ファイルパスやシート名は必要に応じて変更してください。


 コードも丸ごとコピーできるようにして欲しいのはわがままだろうか。

この記事が気に入ったらサポートをしてみませんか?