WebBrowserコントロールを使ってHTMLファイルを表示するには?

Question 48.5 Excel VBA Borad (掲示板)より Previous Next
突然の質問で恐縮ですが
エクセルで、あるURLのファイル (HTMLもしくはtxt) を開きたいのですが・・・・
コントロールのWebBrowserを使用したいのですが、今ひとつ使い方がわかりません。どのように設定すればいいかを教えてもらえないでしょうか?
やりたい作業は単純です。
Webサーバ(イントラ)上のHTMLファイルを、エクセルで直接引っ張ってきて表示させたいだけです。
アクセスならActiveXで簡単にできる動作ですが、どうもEXCELでは・・・・
Answer   2001.8.10 ムラジロ~
APIで操作する方法もありますが、WebBrowserコントロールを使う方が、より柔軟に操作できますね。
URIに飛ぶのは
    WebBrowser1.Navigate URI
といった感じです。
また、ブラウザを限定して操作する場合はIEが柔軟に扱えます。
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate URI
    End With
といった感じです。
なお、APIを使うと拡張子に関連付けられたブラウザでURIを表示します。
Answer  Excel 97以上 2001.7.18 うな
単に(ブラウザで)HTMLを表示できればいいのであれば、 API関数を利用する方法もあります。例えば、
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
            ByVal hwnd As Long, _
            ByVal lpOperation As String, _
            ByVal lpFile As String, _
            ByVal lpParameters As String, _
            ByVal lpDirectory As String, _
            ByVal nShowCmd As Long) As Long
Sub OpenUrl()
    Call ShellExecute(0, "open", _
        "http://hogehoge/index.htm", vbNullString, "c:\", 1)
End Sub
で可能です。もっと簡単な方法があるかもしれませんが・・・ なお、API関数の引数は省略しています。
Comment  Excel 97以上 Copyright (C) 2001.8.29 Yoshioh Nagai
コントロールツールボックス 1. WebBrowserコントロール
VBE画面でユーザーフォームをデザインするときに、右図のようなツールボックスが表示されます。(WebBrowserコントロールが追加済)
このコントロールは、標準では表示されませんので、あらかじめ追加しておきます。

2. 追加するための操作方法
 (1) VBE画面の[ツール]メニュー [その他のコントロール]をクリック
 (2) [Microsoft Web Browser]をチェックして [OK]ボタンをクリック

3. WebBrowserコントロールの使い方
ユーザーフォームにデザインするときの操作方法は、テキストボックスなどの他のコントロールと同様です。
つまり、ツールボックスの WebBrowserコントロールをクリックするとマウスボインタの形状が変わるので、ユーザーフォーム上に矩形を描けば終わりです。コマンドボタンなど他のコントロールを、一緒に描いてもかまいません。

4. マクロの作成方法
標準モジュールに作成します。ムラジロ~さんの「URIに飛ぶ」コードを、下記のように組み込みます。
'------------------------------------------------------------------------------
Sub ユーザーフォームのWebBrowserコントロールでHTMLファイルを表示する()
    アドレス = "http://plaza18.mbn.or.jp/~Happy/" 'アドレスを設定する ※1
    UserForm1.WebBrowser1.Navigate アドレス     'URIに飛ぶ
    UserForm1.Show
End Sub
'------------------------------------------------------------------------------
ユーザーフォーム ※1の ""で囲まれた中には、ホームページのアドレスを記入します。質問のケースでは、イントラネットのアドレスになります。
また、他のネットワークコンピュータのファイルを指定することも可能でしょう。

このマクロを実行すると、右図のようなユーザーフォームが表示されます。

ムラジロ~さんの「ブラウザを限定して操作する」コードと、うなさんの「API関数を利用する」マクロも、標準モジュールに作成します。

サンプルブックのダウンロードは
ここをクリック (xvSample/YNxv9195_WebBrowser.xls.xls 47KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。 注意事項としては、インターネットで試す場合、マクロを実行する前にインターネットに接続しておくことが必要です。

(注) API:Application Program Interface、URI:Uniform Resource Identifiers、URL:Uniform Resource Locator

Excel VBA Macro