- ベストアンサー
HTMLにVBAから書き込みをすることは出来ますか
- VBAを使用してHTMLに書き込む方法について知りたいです。HTMLにはあまり詳しくありませんが、VBAは少し理解しています。手動で画像リンクを書き換えるのが大変なので、VBAを使用して自動的にリンクを書き換えたいと考えています。
- ACCESSのVBAを使用して、○のついたデータのリンクをテキストで吐き出すことはできました。しかし、これを自動的にHTMLに貼り付ける方法が分かりません。一つ一つコピー&ペーストするしか方法はないのでしょうか。また、td width='46'という属性はこの部分でしか使用されていません。
- HTMLにVBAから書き込む方法について教えてください。VBAの知識は少しありますが、HTMLについては初心者です。毎日変わる○のついた結果に対応する画像リンクを自動的に書き換えたいと考えています。手動で書き換えるのは非効率なので、VBAを使用して自動化したいと思っています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エクセル等のVBAについてはよく触っています。 アクセスのVBAでできることについては、想像で。 まず、HTMLの「特定の部分」に記述を追加する。というのは、VBA側でファイルを取得してその中身の「特定の部分」を探して、追加するということになり、処理的に難しいところがあるように思います。 どちらかというと現実的なのは以下の方法のような気がします。 (1)ACCESSのとあるテーブルに、元のHTMLを以下の3部分(3レコード) に分割して格納する。 (A)特定の部分より前のHTML (B)特定の部分(リンク記述部分) (C)特定の部分より後のHTML (2)あなたがつくった、リンクを吐き出すVBAにより、そのままファイ ルに吐き出すのではなく、一旦(B)を上書く形で格納する。 (3)レコード(A),(B),(C)を取得して、連結させる。 (4)テキストファイルに吐き出し、拡張子を.htmlに変える。 (5)元のHTMLファイルがあるファオダパスまでたどりつき、元のHTML ファイルをバックアップフォルダに移動し、(4)のファイルを 格納する。 という方法でいかがでしょうか? ボタン一つで、更新作業完了までさせることが可能と思います。
その他の回答 (2)
- web2525
- ベストアンサー率42% (1219/2850)
的外れかもしれませんが、 表示される画像の位置と、個数・表示順は毎回同じでしょうか? また、表示の選択には規則性があるのでしょうか? 上記が両方yesなら、 ・JavaScriptでの表示切替を行う ・基本のHTML文書に全ての画像表示のタグを記載し、表示させない画像部分をコメント形式に変更する の方が無理してVBAを利用するより簡単だと思うのですが。
お礼
いや、もう本当にきっとそうだと思うんですが、すみません、Javaとか絶対無理な素人事務員なんです。 結局VBAでつなぎつなぎして現在も稼動中です。 開発職からしたら「は?」って感じでしょうけど、やはり普通のひとにとってなじみのあるものは「Excel」、ちょっと背伸びして「Access」なんです。 なのに上司は平然と「こんなふうにして欲しいなあ」などと無理オーダを出します(泣)
- imogasi
- ベストアンサー率27% (4737/17069)
>VBAが少し解る程度、 で質問のようなことは相当勉強が必要です。 >VBAが少し解る程度とかくこと自体がピントハズレです。 情報をエクセルシートに一旦入力するならそれを読むとかで役立ちますが。 VBでやるとしても、エクセルVBAのうちのVBの部分のスキルしか役立ちません。それも基礎からスクールなどで勉強したのでも無くマクロの記録をいじくった程度では。問題は文字を扱うプログラムロジック力が必要です。特にHTML用に加工ソフトが見つからなければ、ストレートに、TAGを目安に文字そのものの修正加工のスキルが必要になります。 むしろ毎回作り直して、HTML化して、旧来のHTMLに挟み込むほうが簡単でしょう。HBにその機能は無いですかね。 スタイルシートが別ファイルに置けるからの連想ですが、HTML文も表部分(例えば毎日更新する部分など)を別ファイルにできなかったかな。(不勉強ですみません) Htm文で (A)固定部分(少しは変える部分があっても、変数化しておいて変える。) (B)毎日更新する表の中身 (C)その他 に分けて考え、 (B)をプログラムでつくり<TD></TD>の集り 3つを継ぎ合わせれば。 ーー HTML文作成に必要な可変部分はエクセルシートに作成するとして Sheet1 A1:C2 46 りんご images/apple.gif 46 バナナ images/banana.gif -- 標準モジュールに Sub test01() d = Range("A65536").End(xlUp).Row ' MsgBox d Open "C:\Documents and Settings\xxxx\My Documents\htmltst1.html" For Output As #1 For i = 1 To d s = "" s = "<td width=""" & Cells(i, "A") & """>" s = s & "<img src=""" & Cells(i, "C") & """" s = s & "alt=""" & Cells(i, "B") & """" s = s & "></td>" MsgBox s Print #1, s Next i Close #1 End Sub 結果 メモ帳で <td width="46"><img src="images/apple.gif"alt="りんご"></td> <td width="46"><img src="images/banana.gif"alt="バナナ"></td> 急いでいて<HTML><BODY>さえも入れてないので、よろしく補ってください。 文字列の書き出しには色々手法があるので上記は旧式の手法です。
お礼
お礼が遅くなりましたこと、申し訳ございませんでした。 回答を拝見して、もっとたくさん勉強しなければならないな、と思いました。ただ、開発職ではないので、ついつい今あるワザでうりゃっと頑張ろうとしてしまいます(笑) ご親切な例示、ありがとうございました!!
お礼
お礼がとんでもなく遅くなりまして、失礼いたしました。 いったんテキスト型で吐き出せば済むことなのですね!!目からウロコでした。 結局回答者さまの考えをおおむね拝借しまして、今でもそのHPは稼動中です。手動で書いてたら1週間はかかるところでした。ほんとうに助かりました。ありがとうございました。