VBA – Excelの起動時にマクロを実行する
In this Article
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を一旦終了し、再度開いてください。
VBAのコーディングが簡単に
VBAのコードをオンラインで検索するのはもうやめましょう。AutoMacro – A VBA Code Builderを使えば、初心者が最小限のコーディング知識でゼロから手順をコーディングできるだけでなく、ベテランのユーザーでも時間を節約できる多くの機能を備えています! もっと詳しく