新しいフォルダを作成「folderCreate」の解説

今回は、新しいフォルダを作成するサブルーチンを解説していきます。
VBAのIE操作では画像やファイルを自動ダウンロードすることが多々あります。
特定のフォルダを事前に作成しておいて、そのフォルダに格納する制御方法については、「ファイルダウンロード「fileDL」の解説」で解説していますが、今回は、保存先であるフォルダを自由に設定する方法について紹介します。

これはカテゴリ毎に画像を保存したいなどファイルを分ける作業が発生する場合に非常に便利な制御方法です。
ここでは、その基本となる新しいフォルダの作成方法について見ていきましょう。

スポンサー リンク

新しいフォルダを作成するサブルーチン


Sub folderCreate(newFolderPath As String)

 'FileSystemObjectインスタンスを生成
 Set objSFO = CreateObject("Scripting.FileSystemObject")
    
 'フォルダの存在確認
 If Not objSFO.FolderExists(newFolderPath) Then: objSFO.CreateFolder newFolderPath
    
 'オブジェクトの解放
 Set objSFO = Nothing

End Sub

※ドラッグ(スワイプ)すると全体を確認できます。

フォルダ作成→ファイルデータダウンロードのマクロ

Sub sample()

  Dim objIE  As InternetExplorer
  Dim newFolderName As String

  'ライブラリ追加ページを表示
  Call ieView(objIE, "http://www.vba-ie.net/library/index.html")
  
  newFolderName = "image"

  Call folderCreate(ThisWorkbook.Path & "\" & newFolderName)

  '画像データをダウンロードして保存
  Call fileDL(objIE, "vbaproject", newFolderName)

End Sub

※ドラッグ(スワイプ)すると全体を確認できます。

実行結果

①「image」フォルダを作成②「image」フォルダへ画像ダウンロード
URLDownloadToFileのダウンロード画像

こちらの引数は以下の1つです。

引数名データ型内容値の事例初期値省略
newFolderPathStringフォルダを作成するパス文字列"C:\Users\vba-ie\Desktop\vba-ie\test"×
folderCreate("フォルダを作成するパス文字列")

「newFolderPath」は必須項目となります。
「newFolderPath」にフォルダを作成するパスを入力します。
今回の例で言えば、ファイルと同じディレクトリに「image」フォルダを作成しています。


Set objSFO = CreateObject("Scripting.FileSystemObject")

※ドラッグ(スワイプ)すると全体を確認できます。

フォルダを操作にするには、「FileSystemObjectオブジェクト」を利用します。
こちらではインスタンスを作成しています。


If Not objSFO.FolderExists(newFolderPath) Then: objSFO.CreateFolder newFolderPath

※ドラッグ(スワイプ)すると全体を確認できます。

こちらでは、{IF~Thenステートメント」を利用してフォルダが存在するかチェックし、存在しない場合はフォルダ作成処理を加えています。
フォルダの存在有無については、「FolderExistsメソッド」を利用します。

「FolderExistsメソッド」は、フォルダがあるかどうかを調べるメソッドで、フォルダのコピー・移動・削除などを行う前に、対象のフォルダがあるかどうかを調べる時に便利なメソッドです。
次にフォルダを作成するのに「CreateFolderメソッド」を利用して作成しています。
「CreateFolderメソッド」では、作成するフォルダ名をWindowsの命名規則に従って指定しなくてはいけません。


Set objSFO = Nothing

※ドラッグ(スワイプ)すると全体を確認できます。

最後にオブジェクトを開放して終了となります。
ParentDirNameサブルーチン」を利用して1階上にフォルダを作成することもできますので、その都度調整しましょう。

次の記事: VBAでIE操作に役立つ指定フォルダ内のファイル一覧(ファイル名)を取得 >>

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

VBAのIE制御についてのQ&A掲示板

↑VBAのIE操作で分からない事があればこちらの掲示板よりご質問ください。

ExcelのVBA初心者入門

↑こちらはVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります。

目次

IE操作に便利なツール

こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。

IEのメソッド・プロパティ

こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。

IE操作のVBA関数

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。

IE操作のステートメント

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。

IE制御のVBAコード

こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。

役立つVBAコード

こちらでは、IE(InternetExplorer)制御の利用だけでなく、Excel全般で利用できるVBAコードです。エクセルVBAで役に立つものばかりですので、ご利用ください。