最終更新日 2005 年 6 月 30 日
サンプル
コードのダウンロード (vbmigtips_OLE.exe, 958 KB)
Visual Basic 6.0
には、Office のドキュメントなどをフォーム内で表示/編集することができる OLE
コントロールがサポートされています。しかし、Visual Basic .NET には、OLE
コントロールと同等の機能を持ったコントロールをサポートしていません。そこで今回は、Visual Basic .NET で、Office
ドキュメントを表示する方法について紹介します。
Visual Basic .NET で OLE コントロールのように
Office ドキュメントをフォーム内に表示する場合、WebBrowser コントロールを使用します。WebBrowser
コントロールは、本来、Web ページを表示する際に使用するコントロールですが、もっとも簡単に Office
ドキュメントの表示を実現することができます。WebBrowser
コントロールを利用するためには、まず、[ツール]メニューの[ツールボックス
アイテムの追加と削除]を選択し、[ツールボックスのカスタマイズ]ダイアログを開きます。表示されたダイアログの[COM
コンポーネント]タブで、「Microsoft WebBrowser」を参照追加し、[OK]ボタンを選択します。すると、ツールボックスに
WebBrowser が追加されます。
次に、追加された WebBrowser コントロールを Form
に貼り付け、下記のコードを実装します。
|
Private Sub
AxWebBrowser1_Enter(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles AxWebBrowser1.Enter
AxWebBrowser1.Navigate("C:\Foo.xls")
End Sub
Private Sub Button1_Click(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
AxWebBrowser1.Navigate("about:blank")
End Sub
Private Sub Button2_Click(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
Dim xlApp As
New Excel.Application
Dim xlBooks As
Excel.Workbooks
xlBooks =
xlApp.Workbooks
xlBooks.Open("C:\Foo.xls")
xlApp.Visible =
True
End
Sub |
リスト1
上記の「AxWebBrowser1.Navigate("C:\Foo.xls")」で
C ドライブの Foo.xls ファイルをAxWebBrowser1 (WebBrowser コントロール)
内で開き、「AxWebBrowser1.Navigate("about:blank")」で
空白のページを参照し、AxWebBrowser1 に表示されているドキュメントを削除します。「Private Sub
Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click ... End Sub」では、Excel を開き、C
ドライブの Foo.xls ファイルを表示します。上記を実装し、プロジェクトを実行すると、図1 のように、Foo.xls
ファイルが表示されます。
.gif)
図1
図1 の[削除]ボタンを選択すると、図2
のように表示されているドキュメントが削除されます。
.gif)
図2
また、図1 の[開く]ボタンを選択すると、C ドライブの Foo.xls
ファイルが開きます (図3)。
.gif)
図3
このように、Visual Basic .NET で Office
ドキュメントをフォーム上に表示する場合、WebBrowser コントロールを使用すると簡単に実現することができます。しかし、この
WebBrowser コントロールは Visual Basic 6.0 の OLE
コントロールと同じ機能すべて持っているわけではありません。そのため、メニューのマージを行うことはできません。また、WebBrowser
コントロールを複数使用し、同じ Office ドキュメントを表示する場合、問題が発生します。そのため、ひとつのプロジェクトに複数の
WebBrowser コントロールを同時に使用したり、同じ Office
ドキュメントを参照したりするのを避けた方が良いでしょう。