おはようございます。
くまおです。
本日のテーマは業務効率化。
誰でも簡単に作成できるVBSのツールのご紹介です。
Windows環境であれば誰でも簡単にプログラム体験できるので試してみてください。
VBSとは
Visual Basic Scriptの頭文字を取った略称で、Windowsに標準搭載されている簡易プログラミング言語です。メモ帳だけでも作成可能で、拡張子を「.vbs」にして保存後、ファイルをダブルクリックするだけで簡単に実行することが出来ます。
これなら誰でもお手軽に始めることが出来そうだね!
今回はフォルダーを簡単に一括作成するプログラムを作成してみました。年末年始のフォルダー整理や、案件開始時のフォルダー作成に、尋常ではない数の『右クリック⇒新規作成⇒フォルダー』をされている方に強くお勧めです。
複数のフォルダーを作成するだけなら簡単だけど、各フォルダーの下にさらにフォルダーを作成する時がとても大変なんだよね。
なおフォルダーの新規作成はショートカット『Ctrl+Shift+n』もあるので活用してみましょう。新規作成『Ctrl+n』と混同しやすいので注意が必要ですね。Windows標準のショートカットは便利なモノが多いので積極的に活用して、私デキマス感を演出していきましょう。笑
コピー『Ctrl+c』とペースト『Ctrl+v』はお手の物ダヨ!
フォルダー一括作成ツール簡易版
'フォルダー名記載 ※vbsファイル配置フォルダーに作成(絶対パスの指定可能) dim fName(5) fName(1)="01.test01" fName(2)="02.test02" fName(3)="03.test03" fName(4)="03.test03\01.test01" fName(5)="03.test03\02.test02" 'オブジェクト生成 ※ファイル操作するためのおまじない Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") '変数に展開できたフォルダーのみ作成 for i = 1 to 5 'フォルダー作成 objFSO.CreateFolder(fName(i)) next 'オブジェクト開放 Set objFSO = nothing
fName(1) ~ (5)の右辺を、作成したいフォルダー名 に変更して保存後、ダブルクリックをすれば終了です。エラー判定は実施していない簡易版のため、作成に失敗した場合は、それ以降のフォルダーは作成されません。親ディレクトリが存在しない、既にフォルダーが存在しているなど、事前に確認した上で実行いただけますと幸いです。相対パスで指定した場合は、VBSファイルと同じフォルダーに新規フォルダーが作成されます。適宜ファイルの配置場所を変更して実行してみてください。
'フォルダー名記載 ※vbsファイル配置フォルダーに作成(絶対パスの指定可能)
dim fName(5)
fName(1)="01.test01"
fName(2)="02.test02"
fName(3)="03.test03"
fName(4)="03.test03\01.test01"
fName(5)="03.test03\02.test02"
'オブジェクト生成 ※ファイル操作するためのおまじない
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
'変数に展開できたフォルダーのみ作成
for i = 1 to 5
'フォルダー作成
objFSO.CreateFolder(fName(i))
next
'オブジェクト開放
Set objFSO = nothing
フォルダ配下にも作成されるのは便利で嬉しいんだよ!
フォルダー一括作成ツールチェック追加汎用版
フォルダーの存在チェックや、親フォルダーの有無を事前にチェックしてSKIPする場合はすこしだけ複雑になります。
'使用方法 '編集箇所を作成するフォルダー件数とフォルダー名に修正後、保存してファイルをダブルクリック '注意点 '親フォルダーが存在しない場合、作成をSKIPするため親フォルダーから順に記載 '-- 以下編集箇所 -- '作成するフォルダー件数(※最大99件) dim fCount : fCount = 10 'フォルダー名記載 ※vbsファイル配置フォルダーに作成(絶対パスの指定可能) fName01="01.test01" fName02="02.test02" fName03="03.test03" fName04="04.test04" fName05="05.test05" fName06="05.test05\test06" fName07="05.test05\test07" fName08="05.test05\test07\test08" fName09="05.test05\test07\test09" fName10="05.test05\test07\test10" '-- 以下編集不要 -- '変数宣言 dim fName() redim fName(fCount) '有効フォルダー件数初期化 tCount = 0 '内部変数に展開 for i = 0 to fCount -1 if i < 9 then tName=eval("fName0"&i+1) else tName=eval("fName"&i+1) end if if len(tName) > 0 then fName(tCount)=tName tCount=tCount+1 end if next 'オブジェクト生成 ※ファイル操作するためのおまじない Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") '変数に展開できたフォルダーのみ作成 for i = 0 to tCount-1 'フラグ初期化 flg = 0 'フォルダー存在チェック ※存在しない場合のみ作成 if false=objFSO.Folderexists(fName(i)) then '親フォルダー存在チェック ※存在しない場合はSKIP if instrrev(fName(i),"\") = 0 then flg = 1 else if true=objFSO.Folderexists(left(fName(i),instrrev(fName(i),"\")-1)) then flg = 1 end if end if if flg = 1 then 'フォルダー作成 objFSO.CreateFolder(fName(i)) end if end if next 'オブジェクト開放 Set objFSO = nothing
プログラムの基本になるIFやFORが使われていて雰囲気が出てきましたね。使用している関数について順番に解説していきます。
ツール解説
作成するフォルダーを別ファイルに記載して、VBSで読み込む方がスマートな気もしますが、また別の機会にご紹介させていただくとします。
何か気になる点があれば、ご指摘ご質問いただけますと励みになります。
如何でしたか。フォルダー一括で作成したくてうずうずしてきましたか?
皆様の日常に欠片でもプラスになれば幸いです。
それではまた。
コメント