2008年03月19日
【Excel VBA】ファイルを開いた時に実行するVBA(マクロ)の関数を作成する
Excelファイルを開いた時に実行するVBA(マクロ)の関数について説明する。
ファイルを開いた時に実行できる関数は、以下の通り。
1.ThisWorkbookモジュールのWorkbook_Open関数を利用する。
→標準で用意されているワークブック用関数
2.標準モジュールにAuto_Open関数を利用する。
上記の関数は、以下のような場合に利用する。
1.ファイルを開いた時に値の初期化を行う場合
2.ファイルを開いた時にフォームを自動的に表示する場合
3.VBAのみ記述するようなファイルを作成する場合
以下、サンプル。
ファイルを開いた時に実行できる関数は、以下の通り。
1.ThisWorkbookモジュールのWorkbook_Open関数を利用する。
→標準で用意されているワークブック用関数
2.標準モジュールにAuto_Open関数を利用する。
上記の関数は、以下のような場合に利用する。
1.ファイルを開いた時に値の初期化を行う場合
2.ファイルを開いた時にフォームを自動的に表示する場合
3.VBAのみ記述するようなファイルを作成する場合
以下、サンプル。
【1.ThisWorkbookモジュールのWorkbook_Open関数を利用する】
《事前準備》
1.コードエディタを開く。
・[Alt]キー+[F11]キーを押す。
・メニューバーの[表示]-[ツールバー]-[Visual Basic]を選択する。
2.ThisWorkbookモジュールを選択する。
《コード》
Private Sub Workbook_Open()
MsgBox "開いたよ", vbOKOnly, "通知"
End Sub
※Workbook_Open関数は、Subステートメントでなければならない。
(Functionステートメントは、指定できない)
【2.標準モジュールにAuto_Open関数を利用する】
《事前準備》
1.コードエディタを開く。
・[Alt]キー+[F11]キーを押す。
・メニューバーの[表示]-[ツールバー]-[Visual Basic]を選択する。
2.標準モジュールを作成する。
・メニューバーの[挿入]-[標準モジュール]を選択する。
3.作成した標準モジュールに「Auto_Open」という名前の関数を作成する。
《コード》
Sub Auto_Open()
MsgBox "ファイルを開きました", vbOKOnly, "通知"
End Sub
Auto_Open関数は、Functionステートメントでも良い。
Function Auto_Open() As Integer
MsgBox "ファイルを開きました", vbOKOnly, "通知"
Auto_Open = 1
End Sub
【補足事項】
・他の実行ファイルと連動させた場合でも、ファイルを開くだけでコードが実行される。
→思わぬ動作を引き起こさないよう、注意する必要がある。
・関数名の大文字/小文字は関係ない。
・WordやAccessにも同じような機能を持つ関数があるが、同じ名称ではないので、注意が必要。
・「【Word VBA】ファイルを開いた時に実行するVBA(マクロ)の関数を作成する」を参照。
・「【Access VBA】ファイルを開いた時に実行するVBA(マクロ)の関数を作成する」を参照。
【参考サイト】
・Microsoft サポートオンライン
「Excel の起動時にマクロを実行する」
《事前準備》
1.コードエディタを開く。
・[Alt]キー+[F11]キーを押す。
・メニューバーの[表示]-[ツールバー]-[Visual Basic]を選択する。
2.ThisWorkbookモジュールを選択する。
《コード》
Private Sub Workbook_Open()
MsgBox "開いたよ", vbOKOnly, "通知"
End Sub
※Workbook_Open関数は、Subステートメントでなければならない。
(Functionステートメントは、指定できない)
【2.標準モジュールにAuto_Open関数を利用する】
《事前準備》
1.コードエディタを開く。
・[Alt]キー+[F11]キーを押す。
・メニューバーの[表示]-[ツールバー]-[Visual Basic]を選択する。
2.標準モジュールを作成する。
・メニューバーの[挿入]-[標準モジュール]を選択する。
3.作成した標準モジュールに「Auto_Open」という名前の関数を作成する。
《コード》
Sub Auto_Open()
MsgBox "ファイルを開きました", vbOKOnly, "通知"
End Sub
Auto_Open関数は、Functionステートメントでも良い。
Function Auto_Open() As Integer
MsgBox "ファイルを開きました", vbOKOnly, "通知"
Auto_Open = 1
End Sub
【補足事項】
・他の実行ファイルと連動させた場合でも、ファイルを開くだけでコードが実行される。
→思わぬ動作を引き起こさないよう、注意する必要がある。
・関数名の大文字/小文字は関係ない。
・WordやAccessにも同じような機能を持つ関数があるが、同じ名称ではないので、注意が必要。
・「【Word VBA】ファイルを開いた時に実行するVBA(マクロ)の関数を作成する」を参照。
・「【Access VBA】ファイルを開いた時に実行するVBA(マクロ)の関数を作成する」を参照。
【参考サイト】
・Microsoft サポートオンライン
「Excel の起動時にマクロを実行する」