• ベストアンサー

複数の連続ページを作成するツールを教えてください。

こんにちは。 ポップアップのHTMLを作成していますが、 内容の一部(表示するjpgのファイル番号部分、商品番号、ファイル名)を 変更したページを数百ページ作らなければなりません。 変更する箇所は全て同一の番号なので、0101~0300と指定すると 0101.html、0102.html・・・0299.html、0300.htmlまでの200ページを作成してくれるような ツールが無いかと思っています。 ご存じの方がいらっしゃいましたら、是非ご照会ください。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • togino
  • ベストアンサー率75% (97/129)
回答No.5

<html><head></head> <body> <h1><<ItemName>></h1> <a href="<<ImageFileName>>?code=<<ItemCode>>"><<ItemName>></a> </body> </html> のような雛形 HTML ページを作成します。 ファイル名は template.html とします 商品番号を入れたいところには <<ItemName>> という 文字列を入れています。さらに、 ImageFileName,ItemCode,ItemName 0101.jpg,code0101,商品A 0102.jpg,code0102,商品B 0103.jpg,code0103,商品C 上記のようなファイルを data.csv という名前で 作成してください。1行目は template.html にある <<ItemName>> と関係があります。その列には 0101 から順に商品名を入れます。 Set Fs = WScript.CreateObject("Scripting.FileSystemObject") Set oCSV = Fs.OpenTextFile("data.csv", 1) arrayTitle = Split(oCSV.ReadLine, ",") For i = 101 To 103 Set oTs1 = Fs.OpenTextFile("template.html", 1) Set oTs2 = Fs.CreateTextFile(Right("0000" & i,4) & ".html",True) 'ファイルを作成する arrayReplace = Split(oCSV.ReadLine, ",") Do Until oTs1.AtEndOfStream sLine = oTs1.ReadLine For s = 0 To UBound(arrayTitle) sLine = Replace(sLine, "<<" & arrayTitle(s) & ">>", arrayReplace(s)) Next oTs2.Write sLine & vbCrLf Loop oTs2.Close oTs1.Close Next oCSV.Close 最後に、上記 test.vbs を作成して、ダブルクリック するだけです。

hee1
質問者

お礼

昨日に引き続いて大変丁寧に教えて頂きありがとうございました。 オリジナルにプログラムを組み上げてくださりとても 助かりました。感動しました。 おかげさまで大変上手く行きました。 これから商品数が幾つになっても恐くありません。 また何かありましたら助けてください。 この度は本当にありがとうございました。

その他の回答 (4)

  • togino
  • ベストアンサー率75% (97/129)
回答No.4

みなさん、ど~して折角高性能な計算機をお持ちなのに プログラムしようと思われないのでしょうかねぇ(苦笑) Set Fs = WScript.CreateObject("Scripting.FileSystemObject") For i = 101 To 300 Set oTs1 = Fs.OpenTextFile("template.html", 1) Set oTs2 = Fs.CreateTextFile(Right("0000" & i,4) & ".html",True) 'ファイルを作成する Do Until oTs1.AtEndOfStream sLine = oTs1.ReadLine oTs2.Write sLine Loop oTs2.Close oTs1.Close Next これを、コピペして test.vbs という名前のファイルを 作成してください。 そして、同じフォルダに template.html という名の 基本になる HTML ファイルを作成して置いてください。 あとは test.vbs をダブルクリックするだけ! ほ~ら、あっというまに 300 個ファイルが作成できました。 ファイル名もおもいのまま。 コピーするだけなら、copy コマンドですむのだけど なぜ、いちいち1行読み込んで1行出力したのかって・・・ それは、 > 内容の一部(表示するjpgのファイル番号部分、 > 商品番号、ファイル名)を変更したページ にあるように、その一部の変更も自動生成してしまおう って腹です。 続きは、また後で。

hee1
質問者

補足

とても具体的なご回答を頂き、頼もしい限りです。 ありがとうございます。 具体的なファイルの内容を示した方が良いのでしょうか。 HTMLの内容で変更されるのは商品番号のテキスト表示の部分 <TD width="140" bgcolor="#808080"><p><FONT SIZE="2" COLOR="#FFFFFF"><b> ****</b></FONT></p></TD> と 画像表示のリンク部分 <TD ALIGN="center"><IMG src="detail1_img/****_p.jpg" width="600" alt="商品写真" border="0"></TD> の中の****が任意の番号になり、ファイル名を ****.htmlとしています。 宜しくお願い致します。

  • SpiceGirl
  • ベストアンサー率69% (493/713)
回答No.3

こんにちは。 参考URLの「すなねぃる!!」(無料)ではいかがでしょうか。 謳い文句は”デジカメ等の画像を WEB 上でサムネイル表示するための HTML ファイルを自動生成します。”ですが、画像毎(画像本来のサイズで)にページを作ってくれます。 画像名が0101~0300であれば0101.html~0300.htmlに作成されます。処理も速いです。 一度試してみてはいかがでしょうか。

参考URL:
http://homepage3.nifty.com/metis/
hee1
質問者

補足

ご回答頂きありがとうございます。 ポップアップの作成に利用出来そうですね。 ただ、今回ポップアップのHTMLですが、既存のHTMLファイルを書き換えてくれるプログラムを探しています。 ありがとうございました。

回答No.2

htmlファイルの記述は同じで単に同じ物を300ファイルということでよいですか? 「整理屋さん」さんのようなリネームソフトはどうですか? 1つだけファイルを作っておいてコピーで300ファイル作ります。(これはすぐにできますよね) で、0101-0300にリネームするという方法です。

参考URL:
http://www2.lint.ne.jp/~lrc/fi_filemng2.htm
hee1
質問者

補足

ご回答頂きありがとうございます。 ただ、今回ポップアップのHTMLですが、既存のHTMLファイルですが、ファイルのリネームと共に内容の一部も書き換えてくれるプログラムを探しています。 ありがとうございました。

回答No.1

バッチファイルを使えば多少は作業の簡略化が出来るかもしれません。 (例1) copy 0101.html 0102.html (中略) copy 0101.html 0300.html  → 同じページを200個作る (例2) copy /b header.txt+100.txt+footer.txt 0100.html copy /b header.txt+101.txt+footer.txt 0101.html (中略) copy /b header.txt+300.txt+footer.txt 0300.html  →変更箇所を別ファイルに300個作って、それにヘッダとフッタをつける …バッチファイル作成自体はExcelを使えば簡単ですが、それにしても相当の作業量ですね。 他の方の情報がなければもう少し考えてみます。

hee1
質問者

お礼

他の方からのご回答により、上手く解決することが出来ました。 zero-fighter様も大変丁寧に教えてくださり嬉しかったです。 また、何かありましたら質問させて頂きます。 ありがとうございました。

hee1
質問者

補足

ありがとうございます。 >…バッチファイル作成自体はExcelを使えば簡単ですが、それにしても相当の作業量ですね。 他の方の情報がなければもう少し考えてみます。 手作業で数百ページ作成することを思えば、 簡略化出来れば準備作業を惜しむことは無いです。 ただ、やる気は有るけどスキルのない素人なので 具体的な手順を教えて頂けると助かります。 宜しくお願い致します。

関連するQ&A