![見出し画像](https://assets.st-note.com/production/uploads/images/99362490/rectangle_large_type_2_4da83509ed394079e3c7996758a55d6a.jpeg?width=1200)
008_質問:ChatGPTにマクロを作らせる。少なくとも私には得がある。シートがたくさんあるExcelファイルを、シート別にバラバラにして新規保存して欲しい。
今回の質問形式(結論)
ChatGPTにこの質問して作らせたコードです。
1.【今回の質問】このマクロを作ってください→シートがたくさんあるExcelファイルを、シート別にバラバラにして新規保存して欲しい。
2.【質問の英訳】
3.【英訳に対する英語の回答】
4.【英語の回答の日本語訳】
なぜ英訳させるかと言うと、まだAI側の日本語がおかしいからです、ふつうに日本語で書きこむと変化球的解答が返ってくることがあります。
![](https://assets.st-note.com/img/1677829340887-0IUifmMuFW.png?width=1200)
まず、普通のやり方でジャブ。
![](https://assets.st-note.com/img/1677829385537-G7jop2vTWm.png?width=1200)
模範解答が返ってきました。さすがにふざけない。
ということで、マクロを作って欲しいと指示↓
![](https://assets.st-note.com/img/1677829427508-tGKfT31VFW.png?width=1200)
Sub SplitSheetsToFiles()
Dim wb As Workbook
Dim newWb As Workbook
Dim ws As Worksheet
Dim savePath As String
Set wb = ActiveWorkbook
savePath = wb.Path & "\"
For Each ws In wb.Worksheets
ws.Copy
Set newWb = ActiveWorkbook
newWb.SaveAs savePath & ws.Name & ".xlsx"
newWb.Close SaveChanges:=False
Next ws
End Sub
![](https://assets.st-note.com/img/1677829516980-7ppwwaPQHm.png?width=1200)
内容は上下とも同じです。
Sub SplitSheetsToFiles()
Dim wb As Workbook
Dim newWb As Workbook
Dim ws As Worksheet
Dim savePath As String
Set wb = ActiveWorkbook
savePath = wb.Path & "\"
For Each ws In wb.Worksheets
ws.Copy
Set newWb = ActiveWorkbook
newWb.SaveAs savePath & ws.Name & ".xlsx"
newWb.Close SaveChanges:=False
Next ws
End Sub
![](https://assets.st-note.com/img/1677829717174-Y7VdsmkLVa.png?width=1200)
来週が楽しみである。
この記事が気に入ったらサポートをしてみませんか?