【EXCEL VBA】フォルダやEXCELファイル(ブック)の操作

スポンサーリンク

フォルダやEXCELファイル(ブック)の操作

フォルダやファイルの操作について紹介します。

スポンサーリンク

ブックを開く

Openメソッド

Workbooks.Open “ファイルパス”

例えば、”C:\sample”フォルダにある、”ひらちんの部屋.xlsx”を開きたい場合は

Workbooks.Open “C:\sample\ひらちんの部屋.xlsx”

スポンサーリンク

ブックを保存する

SaveAsメソッド

ActiveWorkbook.SaveAs “保存したい場所のファイルパス”

ここでは、ActiveWorkbookとしていますが、WorkbookオブジェクトならOKです。

例えば、”C:\ひらちんの部屋”フォルダに、”ひらちんの部屋_VBA.xlsm”として保存したい場合は、

ActiveWorkbook.SaveAs “C:\ひらちんの部屋\ひらちんの部屋_VBA.xlsm”

とします。

同名のブックがあった場合は、何もしないと上書きするかどうかの確認が表示されます。

これを表示させずに上書き保存で進める場合は、保存操作の前に、

Application.DisplayAlerts = False

を指定します。

これは、ポップアップアラートを表示させない設定です。

処理が終わった後は、

Application.DisplayAlerts = True

で、元に戻しといてくださいね(^o^)

Sub sample()

    Application.DisplayAlerts = False

    ActiveWorkbook.SaveAs "C:\ひらちんの部屋\ひらちんの部屋_VBA.xlsm"
    
    Application.DisplayAlerts = True
    
End Sub

新しいブックを作成する

Addメソッド

Workbooksコレクション.Add

新しいブックを作成するには、WotkbooksコレクショのAddメソッドを使います。

通常、作成したブックはその後色々処理を行うと思うので、作ったときに変数に格納すると便利です。

Sub sample()
    
  '作ったブックを格納する変数を用意する
    Dim NewWB As Workbook

  '新しいブックを作成して、作った変数に格納する
    Set NewWB = Workbooks.Add

  'NewWBに対して色々処理する
    
End Sub

ブックの保存場所を取得する

FullNameプロパティ

Workbookオブジェクト.FullName

ブックの保存されている場所を取得するには、WorkbookオブジェクトのFullNameプロパティを使うと便利です。

Sub sample()
    
   Dim str As String
  str = ActiveWorkbook.FullName
   
   'イミディエイトウィンドウに出力する
   Debug.Print str

End Sub

プロパティを取得するだけなので簡単ですね(^o^)

上記のコードでアクティブなブックのファイルの保存場所ファイル名まで表示されます。

もし、ファイル名は必要なく、保存されているフォルダのPathだけが欲しい場合は、Pathプロパティで取得できます。

Pathプロパティ

Workbookオブジェクト.Path

Sub sample()
    
   Dim str As String
  str = ActiveWorkbook.Path
   
   'イミディエイトウィンドウに出力する
   Debug.Print str

End Sub

Pathプロパティでは、ファイルが置かれているフォルダの場所が表示されます。

ブックの名前を取得したい場合は、WorkbookオブジェクトのNameプロパティを使います。

Nameプロパティ

Workbookオブジェクト.Name

Sub sample()
    
   Dim WB As Workbook
  Set WB = ThisWorkbook
   
   'イミディエイトウィンドウに出力する
   Debug.Print WB.Name

End Sub

ファイルコピーする

FileCopyステートメント

FileCopy “コピー元のファイルパス”, “コピー先のファイルパス”

例えば、”C:\ひらちんの部屋”フォルダにある”ひらちんの部屋1.xlsm”ファイルを、同じフォルダに ”ひらちんの部屋2.xlsm” として保存したい場合は、

FileCopy “C:\ひらちんの部屋\ひらちんの部屋1.xlsm”, “C:\ひらちんの部屋\ひらちんの部屋2.xlsm”

とします。

フォルダやファイル名の部分は変更しても大丈夫ですが、存在しないフォルダにコピーしようとするとエラーになります。

フォルダを作成する

MkDirステートメント

MkDir 作成するフォルダの名前

例えば、”C:\ひらちんの部屋”フォルダの配下に”ひらちんの小部屋”フォルダを作りたい場合は

MkDir ”C:\ひらちんの部屋\ひらちんの小部屋”

すでに存在しているフォルダと同じフォルダを作ろうとするとエラーになります。

コメント

タイトルとURLをコピーしました