№01. Excel VBA-[Excelブックを開いた時に、Excelマクロを自動的に実行] | GTZ&RSのブログ

GTZ&RSのブログ

GT-Z&RSでは、コンピュータ関連情報や地域情報を中心に発信しています。

№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