Sub test()
Dim openBook As Workbook
Dim strPath As String '作成したいフォルダのパス
'①処理後フォルダ作成
'=========================================================
'--- 同じ階層に「処理後」というフォルダを作成する ---'
strPath = ThisWorkbook.Path & "\処理後"
'--- フォルダが存在しない場合のみMkDirで作成 ---'
If (Dir(strPath, vbDirectory) = "") Then
Call MkDir(strPath)
Else
MsgBox "フォルダ作成済みです。確認してください。"
Exit Sub
End If
'②ファイルを選択して加工
'=========================================================
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "開くブックを選んでください"
.Filters.Clear
.Filters.Add "Excelブック", "*.xls?"
.AllowMultiSelect = False
.Show'キャンセルの場合
On Error GoTo Errmsg'ブックを開き、変数に格納
Set openBook = Workbooks.Open(.SelectedItems(1))
End With
'処理
MsgBox openBook.Name & "を開きました。ブックを閉じます。"
'保存場所を指定
'=========================================================
'③作成した[処理後フォルダ]にコピーして保存
openBook.SaveAs (ThisWorkbook.Path & "\処理後\" & ActiveWorkbook.Name)
'開いたブックを閉じる
openBook.Close
Exit Sub
Errmsg:
MsgBox "中止しました"
End Sub
①処理後フォルダ作成
マクロブックと同じ階層に「処理後」という名前のフォルダを作成する
既にフォルダがある場合は処理を中止する。
(フォルダを削除してから再実行させる)
②ファイルを選択して加工
ダイアログを表示させてファイルを選択させる。
開いたファイルはopenBookに格納する。
openBookに対して処理を行う。
③作成した[処理後フォルダ]にコピーして保存
②で開いたopenBookを①で作成した処理後フォルダにコピーして保存する。
openBook自体は保存せずに閉じる。