№0001. Excel VBA-[Excelブックを開いた時に、Excelマクロを自動的に実行する。]
Excelブックを開いた時にいつも定型処理がある場合は、Excelマクロを使用すると便利です。
Workbook_Open()プロシージャ
Excelブックを開くと、Microsoft ExcelではWorkbook_Openイベントが発生します。
今回は、Workbook_Open()プロシージャに、次の処理を実装した例を掲載します。
なお、Workbook_Open()プロシージャは、Microsoft Excel ObjectsのThisWorkbookモジュール内に記述します。
- ブックを開いた時に、必ず任意のワークシートを開く。
- 開いたワークシートを保護する。ただし、マクロ(VBA)からの変更は保護しない。
- 必ず任意のセルを指定する。
- #Ifディレクティブを使用して、デバッグモードと本番モードで動作を変更する。
《ソースコード》
Option Explicit #Const DEBUG_VERSION = 1 ' 本番環境の場合は = 0 Private Sub Workbook_Open() ' ブックを開いた時にマクロを自動実行 Dim strSheetName As String ' ワークシート名を格納する文字型変数 Dim strCellAddress As String ' セルアドレスを格納する文字型変数 strSheetName = "Sheet1" strCellAddress = "A1:A1" With ThisWorkbook.Sheets(strSheetName) .Select ' ブックを開いた時に、必ず任意のワークシートを開く。 .Protect "", True, True, True, True ' 開いたワークシートを保護する。 .Range(strCellAddress).Select ' 必ず任意のセルを指定する。 End With #If DEBUG_VERSION Then ' VBAの動作確認 MsgBox "このExcelブックが開いた時は、必ず「" & strSheetName & "」を選択し、「" & strCellAddress & "」が選択されます。", _ vbInformation + vbOKOnly, "Excel VBA No.0001" #End If End Sub
update:2008.06.20
Copyright (C) 2008 S.IKE