1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

【VBA入門】フォルダを作成する方法

【VBA入門】
Pocket

VBAでフォルダを作成する方法についてご説明します。
VBAからExcelやTxt形式のファイルを出力する際に、任意のフォルダを設定しておくことによりファイルの管理がしやすくなります。
それでは、具体的な手順について確認していきましょう。

新規フォルダの作成

フォルダを作成する場合はmkDir関数を使用します。

<コード>

<実行例>

VBAで作成したパスに新しいフォルダが作成されました。

既に存在しているフォルダか確認

ところで、上記のコードを2回以上実行しようとするとエラーが発生します。
これは同じ場所に同名のフォルダを複数作成できないことによるものです。
というわけで新規のフォルダを作成する場合は前もって同名のフォルダが存在しているか調べる必要があります。

フォルダの存在を調べる場合はDir関数を使用します。
Dir関数の引数にパスを指定し、戻り値が””(長さ0の文字列)であればフォルダが存在しないということになります。
また、フォルダについて調べるので2番目の引数にはvbDirctoryを使用しましょう。

<コード>

<実行例>

FileSystemObjectを使用する方法

フォルダを作成する場合はFileSystemObjectを使用する方法もあります。

<コード>
Dim myFO As Object ‘オブジェクト型の変数を定義’
Dim FolderName As String ‘作成したいフォルダパスを格納’

Set myFO = CreateObject(“Scripting.FileSystemObject”) ‘オブジェクト型の変数にFileSystemObjectを設定’
FolderName = “C:\VBA_Sample\ABC”

myFO.CreateFolder FolderName ‘フォルダ作成’
Set myFO = Nothing ‘オブジェクトの解放’

<実行例>

先ほどのコードと同様に新しいフォルダを作成することができました。

既に存在しているフォルダか確認(FileSystemObjectの場合)
FileSystemObjectでフォルダを作成する場合も、すでに同名のフォルダが存在しているか確認する必要があります。
もちろん上のコードと同様にDir関数で確認することができますが、今回はFileSystemObjectのメソッドである
FolderExistsでチェックしてみましょう。

<コード>
Dim myFO As Object ‘オブジェクト型の変数を定義’
Dim FolderName As String ‘作成したいフォルダパスを格納’

Set myFO = CreateObject(“Scripting.FileSystemObject”) ‘オブジェクト型の変数にFileSystemObjectを設定’
FolderName = “C:\VBA_Sample\ABC”

‘フォルダの存在確認’
If myFO.FolderExists(FolderName) Then
MsgBox “すでに同名のフォルダが存在しています。”
Else
myFO.CreateFolder FolderName ‘フォルダ作成’
End If
Set myFO = Nothing ‘オブジェクトの解放’

<実行例>

まとめ

VBAでフォルダを作成する場合はDirを使用する方法とFileSystemObjectを使用する方法の2種類があります。
いずれも既に存在しているフォルダと同名のパスを指定するとエラーになるので、あらかじめパスの確認をしておくようにしましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る