• 締切済み

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

みんなの回答

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

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

関連するQ&A