ユーザーフォームで、特定シートを別のファイルで保存するマクロコードをご紹介します。
ユーザーフォームで選択したシートを簡単に別ブックで保存することができます。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
ユーザーフォームを作成して開く
エクセルにコマンドボタンを作成し、ユーザーフォームを開きます。
マクロコードを標準モジュール「Module1」に入力します。
Sub ボタン1_Click()
UserForm1.Show vbModeless
End Sub
マクロコードを「Module1」に入力した画面の様子
ユーザーフォーム内部にマクロコードを入力する
マクロコードを「UserForm1」に入力します。
Private Sub CommandButton1_Click()
Dim MyPath As String
Dim ShtName As String
MyPath = ThisWorkbook.Path
ShtName = UserForm1.ListBox1.Value
'シートを別ファイルについて保存
Sheets(ShtName).Copy
'名前をつけて保存
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FileName:=MyPath & "\" & ShtName, _
FileFormat:=xlOpenXMLWorkbook, Local:=True
ActiveWorkbook.Close True
Application.DisplayAlerts = True
MsgBox "完了"
End Sub
Private Sub UserForm_Initialize()
Dim MyList() As Variant
Dim i As Integer
With UserForm1.ListBox1
'1つだけ選択
.MultiSelect = fmMultiSelectSingle
'チェックボックス表示
.ListStyle = fmListStyleOption
ReDim Preserve MyList(Sheets.Count)
'シート名を取得
For i = 2 To Sheets.Count
MyList(i) = Sheets(i).Name
Next i
'リストボックスに追加
For i = 2 To UBound(MyList)
.AddItem MyList(i)
Next i
End With
End Sub
マクロコードを入力する場所「UserForm1」
動作
「ユーザーフォームを開く」ボタンをクリックして、ユーザーフォームを起動します。
[ListBox1] にシート名の一覧が表示されます。
別ファイル保存したいシートを選択して、「別ファイル作成」ボタンをクリックします。
別ファイルの作成が完了すると、メッセージボックスに「完了」と表示されます。
マクロファイルを保存しているフォルダと同じ場所に「5月.xlsx」を作成しました。
この記事がお役に立ちますと幸いです。
・【ExcelVBA】ユーザーフォーム作成の事例まとめ
【VBAユーザーフォーム】何ができるの?:使用例34選
...
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク