VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -