こんにちは、Ryoです。
今回はフォルダの新規作成ができるMkDirステートメント、フォルダを削除することができるRmDirステートメント(フォルダ内のファイルが存在しないことが前提なのでKillステートメントも併用)について書いていきたいと思います。
1.サンプル概要
◆新規フォルダ作成
サンプルコード実行ファイルと同じ場所に新規フォルダ「SampleFolder」を作成し、更にその「SampleFolder」内に「サンプル」フォルダを作成します。
処理を実行すると「SampleFolder」が生成されます。
「SampleFolder」内には「サンプル」フォルダが生成されています。
◆フォルダの削除
サンプルコード実行ファイルと同じ場所にある「Deletesmp」フォルダを削除します。
「Deletesmp」フォルダ内にはテキストファイルが3つありますので、これらのファイルを削除してからフォルダを削除する流れになります。
実行後、フォルダが削除されています。
以上がサンプル概要になります。
2.サンプルコード
◆新規フォルダ:MkDirステートメント
Sub Sample1() '同フォルダ内に「SampleFolder」フォルダを作成 MkDir ThisWorkbook.Path & "\SampleFolder" '↑で作成したフォルダ内に「サンプル」フォルダを作成 MkDir ThisWorkbook.Path & "\SampleFolder\サンプル" End Sub
構文:MkDir path
MkDirステートメントはフォルダを新規に作成します。引数Pathに作成するフォルダ名をフルパスで指定します。(省略時はカレントフォルダが対象)
サンプルコードでは先ず「SampleFolder」を作成し、そのSampleFolder内に「サンプル」フォルダをフルパス指定で実行しています。
ちなみに同名のフォルダが存在する場合はエラーとなりますので、事前にDir関数などを利用して確認しておくと良いと思います。
◆フォルダ削除:RmDirステートメント
Sub Sample2() Dim TargetFol As String '削除対象フォルダフルパスを変数TargetFolに代入 TargetFol = ThisWorkbook.Path & "\Deletesmp" '事前に削除対象フォルダ内のファイルをずべて削除 Kill TargetFol & "\*.*" 'フォルダを削除 RmDir TargetFol End Sub
構文:RmDir/Kill pathname
RmDirステートメントはフォルダを削除、Killステートメントはファイルを削除するものです。どちらも引数pathnameに削除対象をフルパスで指定します。(省略時はカレントフォルダが対象)
サンプルコードは実行ファイルと同じ場所にある「Deletesmp」フォルダを削除するものですが、このフォルダにはファイルが存在しているのでKillステートメントでフォルダ内のファイルを削除し、その後フォルダを削除しています。
RmDirステートメントはフォルダ内にファイルが存在しているとエラーになりますので注意が必要です。
ちなみにRmDirステートメント/Killステートメントで削除されたフォルダやファイルは「完全に削除」される点についても合わせてご注意ください。
3.まとめ
フォルダに関連する処理はいくつかあるのですが、新規にフォルダ作成するのであれば簡単に処理できるので知っておくと便利です。
フォルダ削除のRmDirステートメントはフォルダ内にファイルがあればエラーになりますので誤って収納されたファイルごと消してしまうことはありませんから、逆に使い勝手が良いように思っています。
以上、新規にフォルダを作成/フォルダの削除についてでした!今回の記事が何かの参考になれば幸いです。
Ryo