Programming > VBS > VBSでリストからファイルを作成
2021-10-07 (木) 公開
VBSでリストからテキストファイルを自動生成する方法
やりたいこと †
- 本の目次データから、対応する内容のテキストファイルを自動的に生成したい。
- VBSでファイルを読み込み、1行ずつ文字列を読み取って、その文字列をファイル名とするテキストファイルを自動で生成したい。
VBScript †
以下のようなVBScriptで実現できた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
|
問題点 †
Dimで変数を宣言する箇所をLoop内に入れており、何回も宣言しているところ。
本来は、スクリプト全体の先頭でまとめて宣言しておき、ループ内では宣言しない方が良いが、面倒なのでサンプルコードをコピペして、そのまま使った。
何度も繰り返し使う変数は、ループ内の末尾で、Set xxx = Nothing という具合で初期化しておけばOK。(後でコードを清書してもOK)
使い方 †
- 作業フォルダを指定
dirTmp = "C:\tmp\vbs_makefile\"
のように、Cドライブの直下に作業用のフォルダーを用意しておく。
- リストファイルのパスを指定
strReadFilePath = dirTmp & "list.txt"
ここでは「list.txt」というファイルを用意して、その中に、ファイル名のリストをコピーしておく。
(例)「時間術大全」という本の目次データをコピペしておく。
時間術大全 人生が本当に変わる「87の時間ワザ」 ジェイク・ナップ ダイヤモンド社 2019-06-20 ¥1760 |
0-0-0 時間術大全 ---------------------------------------- 0-1-0 INTRODUCTION これが「時間オタクの」全技術だ 0-1-1 どんな状況の人でも時間を生み出せる方法 0-1-2 あなたの時間の9割は「デフォルト」で決まっている 0-1-3 「意志力」や「生産性」を上げても意味がない 0-1-4 Google×YouTube出身の「時間オタク」のメソッド 0-1-5 時間は「デザイン」できる 0-1-6 「スプリント」をしてわかった4つの教訓 0-1-7 こんなに「簡単」に切り替えられる :
これを先頭から1行ずつ読み込んで、「0-0-0 時間術大全.txt」のようなファイルを自動で次々と生成していく。
- ファイルを作成するフォルダを指定
strWriteDirPath = dirTmp & "file\"
ここでは「file」というフォルダーを用意して、その中に、生成したテキストファイルを保存していく。
フォルダー内の構成 †
フォルダー内の構成は、以下のようになっている。(画像参照)
C:\tmp\vbs_makefile\ ├ file ├ list.txt └ makefile.vbs
「makefile.vbs」をダブルクリックすると、「file」フォルダ―の中にテキストファイルが生成されている。
(例)以下のように、目次の項目名をファイル名とするテキストファイルが生成されている。
- 改行マークは、ファイル名が空の「.txt」として生成されている。
- 区切り記号として複数書き込んでいた「----------------------------------------」は、何度も上書きされて1つの「----------------------------------------.txt」として生成されている。
このようにゴミファイルもいくつか生成されてしまうので、最終的に目視確認して、不要ファイルを手動で削除する必要がある。
参考情報 †
(1) ファイルの読み込み †
- VBScript - ファイルを1行ずつ読み込んで処理する : Server World
https://www.server-world.info/query?os=Other&p=vbs&f=4 - ファイルの内容を1行ずつ読み込む方法[VBScript] : バヤシタ
https://bayashita.com/p/entry/show/85 - VBScript Tips (Tips0072)
http://www.whitire.com/vbs/tips0072.html
(2) ファイル名に使えない文字列のチェック †
- ファイル名に使用できない文字列が含まれていないか調べる - .NET Tips (VB.NET,C#...)
https://dobon.net/vb/dotnet/file/invalidpathchars.html - Excel VBA でファイル名に使えない文字を取り除く・チェックする | 勉強とガジェット
http://tanaka-misaki.blogspot.com/2012/02/excel-vba.html
(3) ファイルの作成 †
- VBS(VBScript)によるファイルを作成する方法を紹介
https://www.wannko.net/vbs/file/filemake.html - 全ては時の中に… : 【VBS】テキストファイルを作成する
http://blog.livedoor.jp/akf0/archives/51371234.html