新しいフォルダを作成「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(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^

ExcelのVBA初心者入門

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

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

VBAでIE(InternetExplorer)制御の準備

【ダウンロード】IE操作に便利なツール

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

IEオブジェクトのメソッド・プロパティ

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

IE操作に利用されているVBA関数

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

IE操作に利用されているステートメント

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

IE(InternetExplorer)制御のVBAコード

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

ExcelのVBAで作成した役立つVBAコード

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