Excel VBA質問箱 IV

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

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


6450 / 13646 ツリー ←次へ | 前へ→

【45179】イベントプロシージャをアドインで使用する だいこん 06/12/14(木) 15:34 質問[未読]
【45182】イベントプロシージャをアドインで使用する... だいこん 06/12/14(木) 17:19 質問[未読]
【45183】Re:イベントプロシージャをアドインで使用... Kein 06/12/14(木) 17:55 発言[未読]
【45186】Re:イベントプロシージャをアドインで使用... ichinose 06/12/14(木) 19:20 発言[未読]

【45179】イベントプロシージャをアドインで使用す...
質問  だいこん  - 06/12/14(木) 15:34 -

引用なし
パスワード
   いつも拝見させていただいております。

今回は質問させていただきます。

worksheet_change のイベントプロシージャに書いた
マクロを、そのまま.xlaにしても使用できないですよね?

アドインにした時にでも、これを使用出来る方法、または
別に良い方法があったら教えていただけませんか?

よろしくお願いします。

【45182】イベントプロシージャをアドインで使用す...
質問  だいこん  - 06/12/14(木) 17:19 -

引用なし
パスワード
   皆様すみません。

worksheetに書かれた、イベントを
アドインで使用したいのですが、
さっぱり分かりません。

こちらの過去の質問で調べてみたのですが、
workbookに対してのはあったのですが・・・

よろしくお願いします。

【45183】Re:イベントプロシージャをアドインで使...
発言  Kein  - 06/12/14(木) 17:55 -

引用なし
パスワード
   やったことが無いので、あくまで勘ですが、Excel95以前で使っていた
OnEntryプロパティ を使うコードなら、うまくいくかも知れません。
以下に OnEntryプロパティ のヘルプ(Excel95)を抜粋しておきます。
-------------------------------------------------------------------------
数式バーを使ってデータを入力するか、またはセル内でデータの編集を行ったときに
実行されるプロシージャの名前を返します。値の取得および設定ともに可能です。

[解説]

編集コマンドやマクロ関数を使ったときには、このプロシージャは実行されません。
プロシージャの設定を解除するには、このプロパティに空の文字列 ("") を設定します。
どのセルにデータが入力されたかを調べるには、Caller プロパティを使います。

[使用例]

次の使用例は、Sheet1 にデータが入力されたときに、my_Worksheet_Entry_Procedure を実行します。

Worksheets("Sheet1").OnEntry = "my_Worksheet_Entry_Procedure"

次の使用例は、Sheet1 の OnEntry プロパティに対するプロシージャの設定を
解除します。

Worksheets("Sheet1").OnEntry = ""

------------------------------------------------------------------------
*つまりこれら "On" で始まるプロパティは、Excel97以降のイベントと違い、
「任意のタイミングで、コードによって設定・解除する」わけです。
なのでアドインには向いているかも・・と考えた次第です。

【45186】Re:イベントプロシージャをアドインで使...
発言  ichinose  - 06/12/14(木) 19:20 -

引用なし
パスワード
   こんばんは。
>worksheetに書かれた、イベントを
>アドインで使用したいのですが、
>さっぱり分かりません。
さっぱり何をされたいのか、わかりません。

本当に想像です。
当該アドインのThisworkBookのモジュールに

'===========================================================
Private WithEvents app As Application
'===========================================================
Private Sub app_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  MsgBox Target.Address(, , , True)
End Sub
'===========================================================
Private Sub Workbook_Open()
  Set app = Application
End Sub

とすれば、不特定多数のブックのセルの変更という動作で
上記のイベントプロシジャー(app_SheetChange)が実行されます。

>worksheetに書かれた、イベントを
>アドインで使用したいのですが、

という記述ではこのような解釈が正しいとは思えませんが・・・。

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