Excel VBA質問箱 IV

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

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


75265 / 76732 ←次へ | 前へ→

【5909】Re:訂正
回答  ichinose  - 03/6/7(土) 17:52 -

引用なし
パスワード
   ▼B-BOSS さん:
こんにちは。

>ichinoseさんに教えていただいたコードでは、いきなり
>クラスのモジュールが動作してしまいました。

そうなるようにしたつもりです・・・。

> 現在、私が検討しているのは、次の内容です。
>現在既にアドインに登録してある内容のコードがあります。
> 内容は簡単な物で行を追加したり、又削除したり、文字列を
>入力したりするものです。
>つまり、ワークシートのスタイルに変更を与える物です。
> そしてその変更が完了してから、そのシート(又はブック)に
>WORKSHEET_Change イベント を作成したいのです。
考え方としては、

  Set acc_bk = Wb(ブックのオブジェクトという意味で)

のコードをどこで実行させるかという問題だと思いますが、
既に作成してあるコードでは「ワークシートのスタイルに変更」をしているとのこと、
コード内では、対象ブックが特定できますよね(Activeworkbookかもしれません、あるいは、Workbooks("xxx")という指定が可能なのかもしれません)。

そのプロシジャーが書かれているモジュールで、
'========================================
  Private app_ev As Class1
'========================================
Private Sub アドインプロシジャー()
' 既に作成されているコード
'    ・
'    ・
'    ・
  Set app_ev = New Class1
'    ↑当初考えていたものと違ってきていますから、変数名は変えてください
'    尚、このSetは、一度だけでよいと思いますが(どこか他のところ
'     で例えばWorkbook_Open)、全体が見えないのでとりあえずここで設定。
  Set app_ev.acc_bk = ActiveWorkbook
'              ↑イベントを発生させたいブックを指定する
End Sub

クラスモジュールでは、
'====================================================
Public WithEvents acc_bk As Workbook
'↑今度は、クラス外からも設定できるようにPublicで宣言
'====================================================
Private Sub acc_bk_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  MsgBox "ブック: " & acc_bk.Name & "-シート: " & Sh.Name & "-:セル: " _
    & Target.Address & " が変更されました"
End Sub

とすると、アドインブログラムの実行後に指定したブックでChangeイベントが可能になるかと思いますが・・・。
1 hits

【5899】アドインに登録したコードでWORKSHEET_Change イベントを作成したい。 B-BOSS 03/6/7(土) 10:07 質問
【5902】Re:アドインに登録したコードでWORKSHEET_C... ichinose 03/6/7(土) 11:59 回答
【5903】訂正 ichinose 03/6/7(土) 12:07 回答
【5908】Re:訂正 B-BOSS 03/6/7(土) 15:06 質問
【5909】Re:訂正 ichinose 03/6/7(土) 17:52 回答
【5917】Re:訂正 B-BOSS 03/6/9(月) 14:26 お礼
【5922】Re:訂正 B-BOSS 03/6/9(月) 17:26 質問
【5928】Re:訂正 ichinose 03/6/9(月) 22:50 回答
【6310】Re:訂正 B-BOSS 03/6/23(月) 16:47 お礼

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