통합 문서의 시트 이름을 대량으로 대체하는 엑셀 VBA
다음 샘플 코드를 사용하면,
라는 작업을 자동화합니다.
조작방법
1,
책의 시트 이름을 가져와 목록을 만드는 엑셀 VBA 을 실행하여 시트 이름을 가져옵니다.
2,
「시트명 일람」의 「시트명(변경 후)」에 희망 시트명을 입력.
3,
아래의 샘플 코드를 포함한 엑셀 파일을 열고 →「개발」→「매크로」의 순서로 클릭.
A 시트 이름 바꾸기 → 실행을 클릭합니다.
4,
파일 열기 대화 상자가 표시되므로 시트 이름을 바꿀 원하는 엑셀 북을 클릭하고 열기를 클릭합니다.
5,
매크로가 실행됩니다.
시트 이름 목록 이외의 시트 이름을 대량으로 바꿉니다.
완료입니다.
샘플 코드
Sub Aファイルを開く()
Dim OpenFileName As String
OpenFileName = Application.GetOpenFilename("Excelファイル,*.xls*")
If OpenFileName = "False" Then
MsgBox "キャンセルされました。処理を終了します。"
End
Else
Workbooks.Open OpenFileName
End If
End Sub
Sub Aシート名置換()
Dim ws As Worksheet
Dim row, col As Long
Dim wsNames As Collection
Dim sh As Variant, flag As Boolean
Set wsNames = New Collection
Call Aファイルを開く
'画面更新停止
Application.ScreenUpdating = False
'確認ダイアログ停止
Application.DisplayAlerts = False
For Each sh In Sheets
If sh.Name = "シート名一覧" Then
flag = True
Exit For
End If
Next sh
If flag = True Then
Worksheets("シート名一覧").Select
Range(Range("A2"), Cells(Rows.Count, 2).End(xlUp)).Select
row = Selection.row
col = Selection.Column
Do While Not IsEmpty(Cells(row, col))
' KeyがStrig型でないと「型が一致しません」というエラーになる
wsNames.Add Item:=Cells(row, col + 1).Value, _
Key:=CStr(Cells(row, col).Value)
row = row + 1
Loop
For Each ws In ActiveWorkbook.Worksheets
On Error Resume Next
ws.Name = wsNames.Item(ws.Name)
Next
Else
'メッセージ表示
MsgBox "シート「シート名一覧」はありません。" & Chr(13) & "先に「シート名取得」を実行して下さい。" & Chr(13) & "処理を終了します"
ActiveWindow.Close
End If
'画面表示ON
Application.ScreenUpdating = False
End Sub
코드의 특징
취소 처리되는 것에 대응하고 있습니다.
책의 시트 이름을 가져와 목록을 만드는 엑셀 VBA 와 연동 가능하도록 하고 있습니다.
Reference
이 문제에 관하여(통합 문서의 시트 이름을 대량으로 대체하는 엑셀 VBA), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/skillhunter007/items/f6bb725c15da76475ab9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)