- 締切済み
VBScriptでHTMLを生成しJPG画像を表示させるには?
いつもありがとうございます。 早速質問ですが,職場での周知用に,vbsでHTMLを生成し, ファイルサーバにある画像(JPG)を取得して,HTMLに埋め込もうとしています。 具体的には以下のとおり表示させようとしていて,XP+IE6だとうまくいくのですが,Vista+IE7だと画像が表示されません。 (生成されたHTMLファイル自体は,画像が表示されます。 VBSで一連の流れにした場合のみ表示できないようです。) つたない文章で申し訳ございませんが,Vista+IE7で表示させるため,お知恵をいただけませんでしょうか。 画像を他部署で作成し,頻繁に更新するため,VBS自体はクライアントに置きっぱなしで,ファイルサーバの画像ファイルを差替えして運用したいと思っています。 --- sub Open_HTML(strImageFile) Dim objIE Dim objShell '初期設定(ウィンドウサイズ、表示位置に使用) WScript.Echo "html作成" & strImageFile 'IEオブジェクトを作成 Set objIE = CreateObject("InternetExplorer.Application") 'IEの画面を表示 objIE.Visible = True 'カラのページを表示 '(これを行わないと以降のdocument.writeなどがエラーになるため) objIE.Navigate "about:blank" 'HTMLを出力します objIE.Document.Write "<html>" & vbcrlf objIE.Document.Write "<head>" & vbcrlf objIE.Document.Write "<title>HTML画像挿入テスト</title>" & vbcrlf objIE.Document.Write "</head>" & vbcrlf objIE.Document.Write "<body>" & vbcrlf objIE.Document.Write "<table border=4 width=""100%"" height=""100%"">" & vbcrlf objIE.Document.Write "<tr>" & vbcrlf objIE.Document.Write "<td align=""center"" valign=""middle"">" & vbcrlf objIE.Document.Write "<IMG SRC=" & strImageFile & "> " & vbcrlf objIE.Document.Write "</td>" & vbcrlf objIE.Document.Write "</tr>" & vbcrlf objIE.Document.Write "</table>" & vbcrlf objIE.Document.Write "</body>" & vbcrlf objIE.Document.Write "</html>" & vbcrlf 'IEをアクティブに Set objShell = WScript.CreateObject("WScript.Shell") objShell.AppActivate("HTML画像挿入テスト - Microsoft Internet Explorer") objShell.AppActivate("HTML画像挿入テスト - Windows Internet Explorer") objIE.FullScreen = True '30秒表示 WScript.Sleep(30000) '画面のクリア objIE.Navigate "about:blank" 'IEの終了 objIE.Quit 'オブジェクトの破棄 Set objIE = Nothing Set objShell = Nothing end sub
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- KenKen_SP
- ベストアンサー率62% (785/1258)
IE7 はちょっと特殊みたいです。 参考URL:「7.11 IEオブジェクトを作る(IE7編)」 http://www.happy2-island.com/vbs/cafe02/capter00711.shtml IE7 環境がないので実際のところわかりませんが、参考 URL の 情報からすると、IE のバージョンによって分岐処理すれば良さ そうです。 試してもいないソースを提示してみる(´A `;) 下記は、WEB ページでインデントを表現するため、全角 SP を 使ってます。このまま、コピペすると VBS の場合はエラーと なりますので、エディタでタブや半角 SP 等適当に置換して下さい。 また、IE をユーザーの手で閉じられてしまうと VBS がエラーを 起こします。30秒待機、自動で閉じる処理は止めといた方が無難です。 ところで... XP + IE6 環境で、上手くいってるのですよね...? # 私の環境では、なぜか画像が表示されないのです # まあ、いいか。 あと、Html の問題として、Meta タグで charset ぐらいは設定 した方が良いでしょう。それから、 Document.Write Document.Writeln の違いなども確認しておいて下さい。 # VBS って VAL 関数使えない...? 最後に逃げ口上ですが、再質問等いただいても私には確認する 環境がないので、その場合は識者の回答をお待ち下さい。 Sub Open_HTML(sImageFileName) Dim IE, SH, Version Set IE = CreateObject("InternetExplorer.Application") Set SH = CreateObject("Shell.Application") IE.Visible = True With CreateObject("Scripting.FileSystemObject") Version = Left(.GetFileVersion(IE.FullName),1) End With If Version = "7" Then IE.Navigate2 "about:blank" IE.Quit Set IE = SH.Windows.Item(SH.Windows.Count - 1) Else IE.Navigate "about:blank" End If With IE.Document .Writeln "<html>" .Writeln "<head>" .Writeln " <meta http-equiv='Content-Language' content='ja'>" .Writeln " <meta http-equiv='Content-Type' content='text/html; charset=Shift_Jis'>" .Writeln " <title>HTML画像挿入テスト</title>" .Writeln "</head>" .Writeln "<body>" .Writeln "<table border=4 width='100%' height='100%'>" .Writeln "<tr>" .Writeln " <td align='center' valign='middle'>" .Writeln " <img src='file://" & sImageFileName & "'>" .Writeln " </td>" .Writeln "</tr>" .Writeln "</table>" .Writeln "</body>" .Writeln "</html>" End With Set IE = Nothing Set SH = Nothing End Sub