[リストへもどる]
一括表示

投稿時間:2003/12/02(Tue) 11:38
投稿者名:カノン
Eメール:
URL :
タイトル:
ExcelをWebBrowserに表示
初めまして、カノンと言います。

ExcelファイルをWebbrowser上に表示したいと思い、こちらのサイトのExcel&Word関係を参考に
させてもらいました。

Dim xlApp   As Excel.Application
Dim xlBook  As Excel.Workbook
Dim xlSheet As Excel.Worksheet

'フォーム表示と同時にWebBrowserにExcel表示
Private Sub Form_Load()

  WebBrowser1.Navigate ("C:\Temp.xls")

End Sub

'xlBookにアクティブなExcelファイルを
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    
  Set xlBook = xlApp.ActiveWorkbook
 Set xlSheet = xlBook.Worksheets(1)

End Sub

'保存
Private Sub Command1_Click()

    xlSheet.Cells(1, 1) = "あいうえお"

    xlApp.DisplayAlerts = False
    
    xlSheet.SaveAs "C:\Temp.xsl"  
  
End Sub

一応、表示してセルに文字を書込み、保存までできたのですが、以下の問題があります。

@フォームロード時にWebBrowserにExcelを表示させると、始めアクティブセルは太枠で表示
されていますが、WebBrowser以外にカーソルが移ると再びカーソルを戻してもアクティブセルが
太枠で表示されません。どこがアクティブなセルかがわからないんです・・文字は打てますが。
フォームロード時ではなく、フォームロード後にCommandbuttonのイベント等で表示させるように
すると問題無いです。

Aこのプログラムを実行中に別のExcelファイルを開けないです。

以上の原因の検討が今のところ全くつきません・・・
お分かりの方がいたら教えて貰えないでしょうか?

環境 VB6.0,Windows2000,Excel2000

お願いいたします。

投稿時間:2003/12/03(Wed) 01:18
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: ExcelをWebBrowserに表示
投稿されたコードではエラーが表示され動作しませんでした。
下記に変更して見ましたが、だめでしょうか?

Option Explicit
Private oDocument As Object

Private Sub Form_Load()
    WebBrowser1.Navigate "C:\Temp.xls"
End Sub

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    On Error Resume Next
    Set oDocument = Nothing
    Set oDocument = pDisp.Document
    WebBrowser1.ExecWB OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_DONTPROMPTUSER
    
    'メニュバーを表示しないなら下記のコードを有効にして下さい。
'   WebBrowser1.ExecWB OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_DONTPROMPTUSER

End Sub

Private Sub Command1_Click()
    With oDocument
        .Sheets(1).Cells(1, 1).Value = "あいうえお"
        .Save   '上書き保存
    End With
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Set oDocument = Nothing
End Sub

投稿時間:2003/12/03(Wed) 11:07
投稿者名:カノン
Eメール:
URL :
タイトル:
Re^2: ExcelをWebBrowserに表示
花ちゃんさん、ありがとうございます。
できました!

Object Libraryを使う方法でしかできないと思ってたんでとても勉強になりました。

初めて見る"WebBrowser1.ExecWB OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_DONTPROMPTUSER"や、

With oDocument
     .Sheets(1).Cells(1, 1).Value = "あいうえお"
     .Save   '上書き保存
End With

の部分のメソッドなどはどうやって勉強されてるんでしょう?
Web上で検索かけてもあまり良い情報が得られなかったので・・・

ちなみにやっぱり別のExcelファイルを開こうとするとVBの画面がActiveになったりそのファイルを
開けなかったりしました。

投稿時間:2003/12/03(Wed) 15:25
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: ExcelをWebBrowserに表示
> ちなみにやっぱり別のExcelファイルを開こうとするとVBの画面がActiveになったりそのファイルを
> 開けなかったりしました。

詳しくは解りませんが、多分下記に該当するのではないでしょうか?
Excelのファイルを関連付け起動せずに、Excelを起動してからファイルを
読込むようにすれば問題ないかと思います。(私が確認した限りでは通常の動作をしました)
Excelファイルを直接ダブルクリックして開こうとすれば競合してしまうようです。

http://support.microsoft.com/default.aspx?scid=http://www.microsoft.com%2Fisapi%2Fgomscom.asp%3FTARGET%3D%2Fjapan%2Fsupport%2Fkb%2Farticles%2FJP304%2F6%2F43.asp
の WebBrowser コントロール使用時の注意 部分等を参照。

投稿時間:2003/12/03(Wed) 16:43
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
蛇足 (Knowledge BaseのURL)
> http://support.microsoft.com/default.aspx?scid=http://www.microsoft.com%2Fisapi%2Fgomscom.asp%3FTARGET%3D%2Fjapan%2Fsupport%2Fkb%2Farticles%2FJP304%2F6%2F43.asp
> の WebBrowser コントロール使用時の注意 部分等を参照。

上記のURLは、
  http://support.microsoft.com/?kbid=304643
と書く事ができるようになっています。こちらの方が見やすくて良いかも。


言語まで指定したい場合は、
  http://support.microsoft.com/default.aspx?kbid=kb;[ln];304643
の構文が使えます。
『[ln]』の部分に、『ja』『en-us』『fr-FR』『de』『ko』などの言語IDを指定して、
  http://support.microsoft.com/default.aspx?kbid=kb;ja;304643
のように書きます。

投稿時間:2003/12/03(Wed) 17:59
投稿者名:カノン
Eメール:
URL :
タイトル:
Re: 蛇足 (Knowledge BaseのURL)
魔界の仮面弁士さん、こんにちは。

> 言語まで指定したい場合は、
>   http://support.microsoft.com/default.aspx?kbid=kb;[ln];304643
> の構文が使えます。
> 『[ln]』の部分に、『ja』『en-us』『fr-FR』『de』『ko』などの言語IDを指定して、
>   http://support.microsoft.com/default.aspx?kbid=kb;ja;304643
> のように書きます。

なるほど〜!
一つ勉強になりました。
ありがとうございます。

投稿時間:2003/12/03(Wed) 17:57
投稿者名:カノン
Eメール:
URL :
タイトル:
Re^4: ExcelをWebBrowserに表示
> 詳しくは解りませんが、多分下記に該当するのではないでしょうか?
> Excelのファイルを関連付け起動せずに、Excelを起動してからファイルを
> 読込むようにすれば問題ないかと思います。(私が確認した限りでは通常の動作をしました)
> Excelファイルを直接ダブルクリックして開こうとすれば競合してしまうようです。

確かにExcelを起動してからファイルを読み込めば問題無く開きました。
その辺りは運用でカバーしたいと思います。
ありがとうございました。