投稿日 | : 2005/03/18(Fri) 18:16 |
投稿者 | : ゆりか |
Eメール | : |
URL | : |
タイトル | : WebBrowser での Excel 制御について |
はじめまして。ゆりかと申します。
実は、こちらのサイトは日ごろより廻覧させて頂いてました。
書込むのは初めてになります。よろしくお願いします。
早速ですが、今、VBでWebBrowserを使用してExcelとのやり取りをする
アプリを作成しています。
こちらの掲示板や過去一覧を見させて頂き自分なりに構築してみましたが
2つわからない事があります。
【やりたい事】
@WebBrowser上にExcelシートを表示します。
A表示されたExcelシートをExcelで開き、項目等の書込みを行い保存します。
B上記で保存されたExcelシートを再びWebBrowser上に表示します。
※WebBrowser上では表示のみで直接の書込みはさせたくない。
但し、スクロールは可能にする。
※Excelで書き込みされた内容を「保存しますか?」のメッセージは
表示させずに保存させたい。
※WebBrowser上でExcelのポップアップメニューは表示させたくない。
以上のことができるように作成してみました。(以下のコード)
【わからない事】
@WebBrowser上で読み取り専用で開くことができない。
今は、読み取り専用でない為に、Excel上で同じファイルを開くと
Excelの方で読み取り専用になってしまいます。
(当たり前といえばそれまでなのですが・・・)
AExcelの「保存しますか?」のメッセージを制御する方法はわかったのですが
メッセージ無しで保存する方法がみつからないのです。
WebBrowserのヘルプも探しましたが見当たらないと同時にあっても英語であるため
理解できないものもあり、また他サイトも探しましたがこれというヒントも
見つかりませんでした。
どうか、教えて頂けないでしょうか?お願い致します。
【現在のコード】
Option Explicit
Private m_strFileName As String
Private xlApp As Excel.Application
Private xlBook As Excel.Workbook
Private WithEvents xlSheet As Excel.Worksheet
Private Sub Form_Load()
'ドラッグ&ドロップを禁止
WebBrowser1.RegisterAsDropTarget = False
'ファイルの取得
Call GetFile
End Sub
Private Sub GetFile()
m_strFileName = "C:\Temp\Book1.xls"
'Excelファイルの読み込み
WebBrowser1.Navigate m_strFileName
End Sub
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
Set xlApp = WebBrowser1.Document.Application
Set xlBook = xlApp.ActiveWorkbook
Set xlSheet = xlBook.Worksheets(1)
End Sub
Private Sub xlSheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
'ポップアップメニューを制御 [WithEvents]
Cancel = True
End Sub
Private Sub cmdOpen_Click()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
On Error GoTo Xls_ERR
' Excelのインスタンス作成
Set xlApp = CreateObject("Excel.Application")
' Excelの表示有無
xlApp.Visible = True
' マクロの警告やメッセージを表示しないように設定
xlApp.DisplayAlerts = False
' 指定したExcelファイルを開く
Set xlBook = xlApp.Workbooks.Open(m_strFileName)
'シートbフ指定
Set xlSheet = xlBook.Worksheets(1)
' オブジェクトを解放
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
Exit Sub
Xls_ERR:
' エラーメッセージを表示
MsgBox Err.Description
End Sub
Private Sub Form_Unload(Cancel As Integer)
' オブジェクトを解放
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
【開発環境】
VB6.0 (SP6) /Windows 2000 Pro (SP4) /IE6.0 (SP1) /Excel 2000