Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1732 / 9994 ←次へ | 前へ→

【11553】Re:エクセルのイベント取得
質問  pon  - 10/3/28(日) 18:16 -

引用なし
パスワード
   ▼YU-TANG さん:
ありがとうございます

>すみませんが、意味がまったく分かりません。
>objClass1 という宣言をモジュールレベルに移動することをお勧めした
>ことと、この xlsApp 等の宣言を標準モジュールに移動されたこととの
>関連はいったい何でしょうか?

クラスモジュールの理解が足りないのと
頭が固くてみたいなでした

再度の書き込みを頂いて

標準モジュールの宣言を
Option Compare Database
Option Explicit

'Private WithEvents xlsApp  As Excel.Application
'Public bokWork       As Excel.Workbook
'Public shtSheet      As Excel.Worksheet

Dim objClass1 As Object

として、希望の操作がかないました
うう うれぴー ♪
ありがとうございました

下記動作確認してみました


Private Sub xlsApp_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)

  MsgBox Sh.Name
  MsgBox Target.Address

End Sub

Private Sub xlsApp_WorkbookBeforeClose(ByVal Wb As Excel.Workbook, Cancel As Boolean)

  MsgBox Wb.Name
  
  Set shtSheet = Nothing
  Set bokWork = Nothing
  Set xlsApp = Nothing
  

End Sub

Private Sub xlsApp_WorkbookBeforeSave(ByVal Wb As Excel.Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)

  MsgBox Wb.Name
  MsgBox Wb.ActiveSheet.Name

End Sub

動作的には
CreateObjectしているので
別途エクセルが先行して開いていても問題は無いと考えています
また
xlsApp_WorkbookBeforeClose

  Set shtSheet = Nothing
  Set bokWork = Nothing
  Set xlsApp = Nothing
しているので、エクセルのお化けも残らないようです
ブックの×ボタンで閉じられても大丈夫でした

Q1)
以上確認してみたのですが
他に確認すべき事項とか注意事項ありますでしょうか
アドバイスありましたらよろしくお願いいたします

Q2)
あと
ブックが閉じられる前なら上記のようにちゃんとイベントは取得できているのですが
ローカルウインドウには何も表示されていません

この状態で(ブックが開いている状態で)
イミディエイトウインドウで開いているブック名とか
取得したいと ?Class1.xlsApp.Wb.Name してみましたが
実行時エラー '424':
オブジェクトが必要です。
となってしまいます

この辺がクラスの使い方の肝のような気もしていますがよくわかりません
イミディエイトウインドウから開いているワークブック名を取得する
ことは出来ますでしょうか?


>> あわせて、上記に遭遇しないようなアプローチの方法等ありましたら
>> 紹介頂けると嬉しいです
>その KB に書いてありますが、
特に、記述先等は無いのですが
どこかのQAでみかけた、変数の値は保証されるものではない
が頭にあって
別途アプローチもあるのかなと思った次第でした

>これらの行為を (実行中には) しない、ということです。
>また実行時エラーはすべてトラップします。トラップし忘れた実行時エラー
>によって、変数が破棄されるケースが (経験則的に) あります。
詳細な解説ありがとうございました
完成後の状態であればこのような状況に遭遇しないと思います


ちょっと感激したのは
開くブックにはコードは無いので
開く時にマクロを有効にする を出さないで
ブックのイベントが取得できたことです
当然といえば当然のような気もしますが・・・・・


Q1、Q2
他コメントあれば、アドバイスよろしくお願いいたします

562 hits

【11549】エクセルのイベント取得 pon 10/3/26(金) 18:20 質問[未読]
【11550】Re:エクセルのイベント取得 YU-TANG 10/3/27(土) 12:18 回答[未読]
【11551】Re:エクセルのイベント取得 pon 10/3/28(日) 15:05 質問[未読]
【11552】Re:エクセルのイベント取得 YU-TANG 10/3/28(日) 15:42 質問[未読]
【11553】Re:エクセルのイベント取得 pon 10/3/28(日) 18:16 質問[未読]
【11554】Re:エクセルのイベント取得 YU-TANG 10/3/29(月) 8:16 回答[未読]
【11555】Re:エクセルのイベント取得 pon 10/3/29(月) 12:44 お礼[未読]

1732 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078193
(SS)C-BOARD v3.8 is Free