いつもお世話になっております。
開発環境は
・Windows XP
・VB6.0(SP6)
です。
WebBrowserを使用してExcelファイルを表示する処理を作っております。
ソースは、以下の通りです。
------------------------------------------------------------
Option Explicit
Private oDocument As Object
Private Sub Form_Load()
'// ダイアログ設定
With CommonDialog1
.Filter = "Office Documents " & _
"(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt"
.FilterIndex = 1
.Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
'// ドキュメント解放
Set oDocument = Nothing
End Sub
Private Sub Command1_Click()
Dim sFileName As String
'// ドキュメント表示
With CommonDialog1
.FileName = ""
.ShowOpen
sFileName = .FileName
End With
If Len(sFileName) Then
Set oDocument = Nothing
WebBrowser1.Navigate sFileName
End If
End Sub
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
'// ドキュメント情報取得
On Error Resume Next
Set oDocument = pDisp.Document
End Sub
------------------------------------------------------------
WebBrowser1.Navigate sFileName を行うと
既に開いているExcelと競合しファイル操作が行えません。
WebBrowser1_NavigateComplete2 で
・
・
Set objApp = CreateObject("Excel.Application")
Set oDocument.Application = objApp
といった感じで新しく生成したものに置き換えれないか
自分なりに試行錯誤&調べたのですが分かりませんでした。
やはり、VB側で制御すること自体不可能なのでしょうか?
WebBrowserと競合せず既に起動しているExcelファイルを操作する方法を
ご存じの方がおいででしたら、ご教授お願い致します。