PCメモ

Excelを中心とした業務改善の記録

作成したフォルダに保存

 

f:id:abv72:20210502174914p:plain



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自体は保存せずに閉じる。