VBA – Excelの起動時にマクロを実行する

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 8月 1, 2022

Excelの起動時にマクロを実行する必要がありますか?VBAには、2つの方法が用意されています。

1. ThisWorkbook内にWorkbook_Open()を作成する。

2. 標準モジュール内にAuto_Open()を配置する。

Workbook_Openイベント

ThisWorkbook の中に ‘Workbook_Open’ というサブプロシージャを作成します。

Private Sub Workbook_open ()
    MsgBox "このコードは、Excelの起動時に実行されました。"
End Sub

Auto_Open

2つ目の方法を使ってみましょう。標準モジュールの中にAuto_Openというサブルーチンを作成し、その中にコードを配置するか、そこから別のサブルーチンを呼び出すだけです。Excelの起動時に自動的にあなたのコードが実行されます。

Private Sub Auto_Open()
    MsgBox "このコードは、Excelの起動時に実行されました。"
End Sub

Excelファイルを開くたびに新しいワークシートを作成し、名前を付ける

次のコードは、ワークブックを開くときに動作します。これは自動的に新しいシートを追加し、日付のラベルを付けます。また、1日に何度も開かれる可能性を考慮して、そのシートがすでに存在しないかどうかもチェックします。

このコードは、ワークブックを開くイベントを利用し、ワークブックモジュール内の “Open work Book “イベントの下に配置する必要があります。関数Sheet_Existはモジュールに配置する必要があり、これはシートが存在するかどうかをチェックします。

Private Sub Workbook_Open()

Dim New_Sheet_Name As String

New_Sheet_Name = Format(Now(), "dd-mm-yy")

If Sheet_Exists(New_Sheet_Name) = False Then
    With Workbooks
        Worksheets.Add().Name = New_Sheet_Name
    End With
End If

Save

End Sub
Fcuntion Sheet_Exists(WorkSheet_Name As String) As Boolean

Dim Work_sheet As Worksheet

Sheet_Exists = False

For Each Work_sheet In ThisWorkbook.Worksheets
    If Work_sheet.Name = WorkSheet_Name Then
        Sheet_Exists = True
    End If
Next

End Function

このチュートリアルの .XLSM ファイルをダウンロードするには、ここをクリックしてください。

ワークブックを開いたときのデフォルトシートを設定する

ワークブックを開いたときに、常に特定のシートが最初に表示されるようにしたいですか?例えば、ワークブックを開いたときに、常にsheet3がアクティブシートになるように設定することができます。その方法をご紹介します。

VBAでシートを参照するには、シートのコード名(例:Sheet3)またはタブ名(例:JanData)のいずれかを使用することができます。タブ名が変わると、タブ名を参照するVBAコードが動作しなくなるため、コード名を使用するのがベストです。コード名を使用すれば、ユーザーがタブ名を何度も変更してもマクロは機能します。

ワークブックを開いたときに特定のシートが常にアクティブになるようにするには、workbook_openサブにsheet.activateを記述しましょう。以下は、ワークブックを開くたびに、コード名を使ってSheet3をアクティブにする例です。

Private Sub Workbook_Open()
Sheet3.Activate
End Sub

そして、以下のコードはタブ名を使って同じことを行います。

Private Sub Workbook_Open()

Sheets("mytabname").Activate
End Sub

補足:この操作を行うには、Excelを保存して再起動する必要があります。
補足:これはマクロが有効になっている場合のみ動作します。
補足:このコードは、VBEのThisWorkbookオブジェクトのコードウィンドウに置いてください。

ワークブックが開くたびにフォームをロードする

Excelワークブックを開くときにフォームをロードしたり、いくつかのVBAコードを実行したい場合は、ThisworkbookコードウィンドウでWorkbook_Openにコードを配置します。 スプレッドシートから 、
1. ALTキーとF11キーを押して、VBエディタを開きます。
2. ThisWorkbookという単語をダブルクリックして、コードウィンドウを開きます。
3. ThisWorkbookのコードウィンドウに次のコードを入力します。

Private Sub Workbook_Open()
UserForm1.Show
End Sub

補足:Userform1をフォーム名に置き換えてください。

4. Excelを一旦終了し、再度開いてください。

load form when excel starts

VBAのコーディングが簡単に

VBAのコードをオンラインで検索するのはもうやめましょう。AutoMacro – A VBA Code Builderを使えば、初心者が最小限のコーディング知識でゼロから手順をコーディングできるだけでなく、ベテランのユーザーでも時間を節約できる多くの機能を備えています! alt text もっと詳しく

<<VBAのサンプルに戻る

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples