印刷用ページ      送信     
クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Visual Studio 2005
Technical Articles
VB マイグレーション Tips
コントロール
 .NET で OLE コントロールに似た動作を実現する方法について
VB マイグレーション Tips
.NET で OLE コントロールに似た動作を実現する方法について

最終更新日 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 ファイルが表示されます。

 
 図1

図1 の[削除]ボタンを選択すると、図2 のように表示されているドキュメントが削除されます。

 
 図2

また、図1 の[開く]ボタンを選択すると、C ドライブの Foo.xls ファイルが開きます (図3)。

 
 図3

このように、Visual Basic .NET で Office ドキュメントをフォーム上に表示する場合、WebBrowser コントロールを使用すると簡単に実現することができます。しかし、この WebBrowser コントロールは Visual Basic 6.0 の OLE コントロールと同じ機能すべて持っているわけではありません。そのため、メニューのマージを行うことはできません。また、WebBrowser コントロールを複数使用し、同じ Office ドキュメントを表示する場合、問題が発生します。そのため、ひとつのプロジェクトに複数の WebBrowser コントロールを同時に使用したり、同じ Office ドキュメントを参照したりするのを避けた方が良いでしょう。


© 2008 Microsoft Corporation.All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker