ここから本文です

Excel VBAのThisworkbookモジュールのイベントプロシージャを標準モジュールから呼...

fz4********さん

2016/11/2122:29:04

Excel VBAのThisworkbookモジュールのイベントプロシージャを標準モジュールから呼び出すことはできないですか?

イベントの発生に関係なくです。
Thisworkbook
元々のコード
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox "A"
End Sub
モジュールの外から呼び出せないのでPrivateをPublicに変える。
Public Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox "A"
End Sub
標準モジュール
右クリックされなくてもSheetBeforeRightClickを実行させる
Sub Call_EventProcedure()
Call Workbook_SheetBeforeRightClick(Sheets(1), Range("A1"), True)’エラー
End Sub

閲覧数:
564
回答数:
3
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

kak********さん

2016/11/2203:18:17

普通はイベントハンドラを呼ぶことはしませんが、パラメータの値を使わなければこのように書くことはできます。
Call Thisworkbook.Workbook_SheetBeforeRightClick(Nothing, Nothing, True)

setuo_315さんの回答のように、実際の処理は標準モジュールに書いておいてイベントハンドラからはそのメソッドを呼ぶようにするのが良いと思います。

質問した人からのコメント

2016/11/22 19:34:40

呼び出せました。ありがとうございました。他の方々もありがとうございました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

hig********さん

2016/11/2123:03:49

私も気になって調べてみましたが、概して「呼び出せないというより、呼び出してはいけない」の精神論が主流でした。そんな事する人居ないから知らないんじゃないの?押し通すなら自力でやるしかないと。

Range("A1")→Sheets(1).Range("A1")に変えてみては?

por********さん

2016/11/2122:52:08

こんにちは。
Call ThisWorkbook.Workbook_SheetBeforeRightClick(Sheets(1), Range("A1"), True) 'エラー

で、確認してください。

最初、標準モジュールを探します。そこに無かったらおわり。
動作させるのに、thisworkbookと、オブジェクト名を追加すると、よいです

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる