• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelのデータから抽出してHTMLかテキストに埋め込みたい)

ExcelのデータをHTMLやテキストに埋め込みたい方法はある?

このQ&Aのポイント
  • Excelには登録ナンバー・住所の一部・年齢・所属などのデータが100人分書き込まれています。これを予め作成したHTMLのテンプレートに指定した部分に自動で埋め込むソフトはあるのでしょうか?
  • テンプレートとなるHTMLではナンバーや住所の欄は空欄にしておきます。その後、何らかの処理をすれば空欄部分に適正な値を自動で入力し、100人分のHTMLファイルを作成してくれるソフトを探しています。
  • 同報メールソフトのように、Excelなどのデータの要素をテキストやHTMLの指定した場所に埋め込み、人数分のファイルを作成してくれる簡単なソフトを探しています。

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

  • ベストアンサー
回答No.2

> 以上のどちらかを希望しています。 「希望しています」の意味がわかりませんが、 VBA がおわかりにならないということでしょうか。 結果としてHTMLファイルが出力されれば よいのではないのですか。 Excel のデータを処理するのに、 Excel の機能のひとつである VBA で実現可能であるのに、 他のソフトを使うというのでしょうか。 一応、VBAのサンプルあげときます。 基になるHTMLファイル中の<!***>というタグを Excel のセルの値に変換して出力します。 タグの***の部分は、Excelファイルの1行目のセルの 値です。     A     B  1 登録ナンバー  住所 2 12345   東京都 3 67890   北海道 とシートにあった場合、基のHTMLファイル中の <!登録ナンバー> とある部分を12345に 変換したファイルをc:\に出力します。 VBA を実行するとファイル選択のウィンドウが開くので 基のHTMLファイルを指定してください。 Sub htmlMake() Dim myFile As String Dim myAry() As String Dim myStr As String Dim i As Integer, j As Integer myFile = _ Application.GetOpenFilename _ ("HTMLファイル (*.htm;*.html) , *.htm;*.html") ReDim myAry(Range("IV1").End(xlToLeft).Column - 1) For i = 0 To Range("IV1").End(xlToLeft).Column - 1 myAry(i) = Range("A1").Offset(, i).Value Next For i = 2 To Range("A65536").End(xlUp).Row Open myFile For Input As #1 Open "c:\" & Range("A" & i).Value & ".htm" For Output As #2 Do While Not EOF(1) Line Input #1, myStr If InStr(myStr, "<!") > 0 Then For j = 0 To UBound(myAry) myStr = _ Replace(myStr, "<!" & myAry(j) & ">", Cells(i, j + 1).Value) Next End If Print #2, myStr Loop Close #1 Close #2 Next MsgBox ("出力終了") End Sub

mizuarai
質問者

お礼

うわあっ!出来ました!!(感動) す、すみません、VBAやったことなかったんですよー。((T_T)馬鹿にしてやって下さい!)VBAなんて、私などには縁のないもの…とか、何となく思いこんでいたんです。いえ、じゃあ今「私もできる!」と思ったかというとそういうわけではなく、暗号を前に呆然となっているのは同じなのですが…(>_<) とっても具体的に指示して頂きましたので(#1で書きました「逐一指示」にあたることで、もう大感謝です)、どきどきしながらとにかくVBAを立ち上げてみて、頂きました命令文?を、失礼ながらそのままコピペして実行してみたら……。あっさり吐き出してくれました。夢みたいです。 しかも、*.htmの*の部分が登録ナンバーになってくれているとは、全く完璧ですね。Open "c:\" & Range("A" & i).Value & ".htm" For Output As #2 の行が、それなのかなー?と、はじめて外国語を学ぶ人間のような気持ちで眺めています。(^_^;すみません 一応ご確認ですが、これ、行・列の数に制限はないですよね。 一応3*3くらいに増やしてやってみても大丈夫だったので、そうだろうなーとは思いつつ。 問題ない場合はお返事不要です。 数日後にポイント発行後締め切らせて頂きます。 詳細な指示を与えてくださって、本当に嬉しいです。 ありがとうございました!

その他の回答 (1)

回答No.1

VBA 使えば、比較的容易に できると思います。 HTML 書き出す処理を、値を換えて 100回ループすればよいのですから。

mizuarai
質問者

お礼

・ソフトを利用する ・逐一書いてあるページの通りにして自作する 以上のどちらかを希望しています。

関連するQ&A

専門家に質問してみよう