ブックを開いたときにプロシージャを実行する(Microsoft Excel)
特定のブックを開くたびに、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の古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。