特定のブックを開くたびに、Excelにプロシージャを自動的に実行させることができます。たとえば、ブックを開いたときに、前日のデータを別のファイルに保存するなど、ユーザーにタスクを実行するかどうかを尋ねるプロシージャを実行したい場合があります。

実際には、Excelには、ブックを開いたときにプロシージャを実行するための2つの異なる方法が用意されています。どちらの場合も、必要なのはマクロに特別な名前を付けることだけです。これは、開いたときにプロシージャを実行するようにExcelに指示する手がかりです。必要に応じて、プロシージャにAuto_Openという名前を付けて、通常のマクロモジュールに配置できます。 ThisWorkbookオブジェクト内にWorkbook_Openというプロシージャを定義することもできます。

例として、次のコードについて考えてみます。

Sub Auto_Open()

Dim sMsg As String     Dim iBoxType As Integer     Dim iUpdate As Integer     Dim sDefault As String     Dim sOldFile As String     Dim iStatusState As Integer

sMsg = "Do you want to save yesterday's transactions?"

iBoxType = vbYesNo + vbQuestion     iUpdate = MsgBox(sMsg, iBoxType, "Automatic Backup")

If iUpdate = vbYes Then         sMsg = "Which filename would you like use?"

sDefault = "OLD.DAT"

sOldFile = InputBox(sMsg, "Automatic Backup", sDefault)

iStatusState = Application.DisplayStatusBar         Application.DisplayStatusBar = True         Application.StatusBar = "Updating past months..."

UpdateYesterday(sOldFile)

Application.StatusBar = False         Application.DisplayStatusBar = iStatusState     End If End Sub

(このプロシージャは例であることに注意してください。実際の更新を行うUpdateYesterdayという関数を呼び出すため、システムでは正しく実行されません。)

このマクロは、添付されているブックを開くたびに自動的に実行されます。最初の行を次のように変更するだけで、コードを変更してThisWorkbookオブジェクト内に配置することもできます。

Private Sub Workbook_Open()

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(8451)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。