|
よろしくお願い致します
エクセル2003
WINXP
希望の動作
アクセスのデータシートフォームの
左端にあるレコードセレクタ部分のダブルクリックで
サーバー上の指定のエクセルブックを開きます
開いたブックで
セル値変更時
ブック保存時
等のイベントを取得して、特定データを取得したいと思っています
参考HP
◆ WithEventsキーワードとは
tp://chaichan.web.infoseek.co.jp/vbtips/VBMemo2007012701.htm
Microsoft Excel 11.0 Object Library を参照設定
-----------------------------------------------------
Class1モジュール
Option Compare Database
Option Explicit
Private WithEvents xlsApp As Excel.Application
Private bokWork As Excel.Workbook
Private shtSheet As Excel.Worksheet
Private Sub Class_Initialize()
Set xlsApp = CreateObject("Excel.Application")
Set bokWork = xlsApp.Workbooks.Open("\\sv_hoge\fuga.xls")
xlsApp.Visible = True
Set shtSheet = bokWork.Worksheets(1)
bokWork.Activate
Debug.Print bokWork.Name
shtSheet.Activate
Debug.Print shtSheet.Name
End Sub
Private Sub Class_Terminate()
End Sub
Private Sub xlsApp_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
MsgBox Sh.Name ’取得できません
End Sub
Private Sub xlsApp_WorkbookOpen(ByVal Wb As Excel.Workbook)
MsgBox Wb.Name ’取得出来ました
End Sub
-----------------------------------------------------
標準モジュール
Sub TG_BK_open()
Dim objClass1 As Object
Set objClass1 = New Class1
End Sub
で
標準モジュール TG_BK_open
を実行すると
ブックは開き
xlsApp_WorkbookOpen は取得できましたが
xlsApp_SheetChange Sh.Name は取得できませんでした
ブックの保存時
セルの変更時
を取得するにはどうすればよいでしょうか
また
ブックの上書き保存後のアクセス側の処理は別途必要でしょうか
エクセルブックのマクロブックの分離もままならない
クラスモジュールもほとんど?
のレベルです
アドバイスよろしくお願い致します
|
|