Excelじゆうちょう

Excelのお絵描きツール『りっぷ2(りっぷつぅ)』のサポートページ、まずは「はじめに」をご覧ください。 [NewEntry] [Admin]

記事更新カレンダー

10 « 2017-11 « 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

やたらに多いカテゴリ

比較的新しい記事

新しいコメント

ありがたいブログ拍手

拍手コメント一覧(拍手はしない)

さみしいトラックバック

申し訳ないプロフィール

申し訳ない

管理人  [ 申し訳ない ]

pxivもやってます
リンクの一番上からのぞきに来てください
※閲覧にはユーザー登録が必要です

RSSってなんぞ?

広告は消せないらしい

FC2Ad

        --------       スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

        2010-06-10       標準モジュールでイベント(もどき)

標準モジュールでなんと、イベントが扱えるんです。
(厳密に言うとイベントじゃないんですが、それは後述)

使えるのはこのふたつ、Auto_OpenプロシージャとAuto_Closeプロシージャです。
前者はブックを開いた直後に、後者はブックを閉じる直前に実行されます。
そうです、WorkbookモジュールのWorkbook_OpenイベントとWorkbook_BeforeCloseイベントとほぼ同じ動きをします。
「ほぼ」というのは、若干の違いがあるからです。

第一に、標準モジュールの方はマクロで開いたり閉じたりした時に実行されません。
例えば、このようなマクロがあるとします。


'【標準モジュールのコードウインドウ】
Private Sub Auto_Open()
MsgBox "Auto_Open"
End Sub
Private Sub Auto_Close()
MsgBox "Auto_Close"
End Sub

'【Workbookモジュールのコードウインドウ】
Private Sub Workbook_Open()
MsgBox "Workbook_Open"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Workbook_BeforeClose"
End Sub


↓普通に開いて閉じたらこの順番で実行↓
Workbook_Open
Auto_Open
Workbook_BeforeClose
Auto_Close

Workbookモジュールは標準モジュールより先に起動します。

↓マクロで開いて閉じたらこの順番で実行↓
Workbook_Open
Workbook_BeforeClose

標準モジュールの方は反応しません。

第二に、Auto_OpenプロシージャとAuto_Closeプロシージャはアクセス修飾子に「Public」を指定できます。
イベントではこんなこと許されません。

第三に、決定的なのがAuto_OpenプロシージャとAuto_Closeプロシージャはイベントの発生を抑止しても動きます。
Application.EnableEvents = Falseを実行すると、アプリケーション(つまりExcel)自体のイベントの発生を抑止することができます。
当然、Workbook_OpenイベントとWorkbook_BeforeCloseイベントは発生しません。
そんな中でも、標準モジュールのそれはしっかり起動してくれます。
スポンサーサイト

コメント

コメントの投稿

管理者にだけ表示を許可  

トラックバック

http://likep.blog63.fc2.com/tb.php/106-28487ed0

 | HOME | 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。