ユーザーフォームで、特定シートをCSV出力するマクロコードをご紹介します。
ユーザーフォームで選択したシートを簡単にCSVに変換することができます。
このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。
ユーザーフォームを作成して開く
エクセルにコマンドボタンを作成し、ユーザーフォームを開きます。
マクロコードを標準モジュール「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
'指定シートを別ファイルにしてCSV保存
Sheets(ShtName).Copy
'名前をつけて保存
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FileName:=MyPath & "\" & ShtName, _
FileFormat:=xlCSV, 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] にシート名の一覧が表示されます。
CSVファイルを作成したいシートを選択して、「CSV作成」ボタンをクリックします。
CSV出力が終わると、メッセージボックスに「完了」と表示されます。
マクロファイルを保存しているフォルダと同じ場所に「5月.csv」を作成しました。
この記事がお役に立ちますと幸いです。
・【ExcelVBA】ユーザーフォーム作成の事例まとめ
【VBAユーザーフォーム】何ができるの?:使用例34選
...
「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載
リンク