Excel VBAの例:紹介イベントの例

Excel VBAの例:紹介イベントの例

Excel VBAを十分に理解しようとしている場合は、いくつかの例を参考にして、その視覚的な基本的なスキルを身に付けることができます。ここでは、このイベント処理ビジネスのコツをつかむことができるように、いくつかのExcelVBAの例を見つけます。

Excel VBAの例:ブックのOpenイベント

最も一般的に使用されるExcelVBAイベントの1つは、WorkbookOpenイベントです。毎日使用するワークブックがあるとします。この例のWorkbook_Openプロシージャは、ブックが開かれるたびに実行されます。手順は曜日をチェックします。金曜日の場合、コードはリマインダーメッセージを表示します。

WorkbookOpenイベントが発生するたびに実行されるExcelVBAプロシージャを作成するには、次の手順に従います。

Excelブックを開きます。
どのExcelワークブックでもかまいません。

Alt + F11を押して、VBEをアクティブにします。

プロジェクトウィンドウでワークブックを見つけます。

必要に応じて、プロジェクト名をダブルクリックしてアイテムを表示します。

ThisWorkbookアイテムをダブルクリックします。
VBEは、ThisWorkbookオブジェクトの空のコードウィンドウを表示します。

[コード]ウィンドウで、[オブジェクト(左)]ドロップダウンリストから[ワークブック]を選択します。
VBEは、Workbook_Openプロシージャの開始ステートメントと終了ステートメントを入力します。

次のステートメントを入力すると、完全なイベント手順は次のようになります。

プライベートサブWorkbook_Open()
  文字列としての薄暗いメッセージ
  平日(今)= 6の場合
    Msg = "今日は金曜日です。忘れずに"
    Msg = Msg&「TPSレポートを送信してください!」
    MsgBoxメッセージ
  終了する場合
エンドサブ

コードウィンドウは次のようになります。

Excel VBAの例:紹介イベントの例

このイベントハンドラプロシージャは、ブックが開かれたときに実行されます。

Workbook_Openは、ブックが開かれるたびに自動的に実行されます。VBAのWeekDay関数を使用して、曜日を決定します。金曜日(6日目)の場合、メッセージボックスはユーザーにレポートを送信するように通知します。金曜日でなければ、何も起こりません。

今日が金曜日でない場合は、この手順をテストするのに苦労するかもしれません。今日の実際の日数に対応するように6を変更するだけです。

そしてもちろん、この手順は好きなように変更できます。たとえば、次のバージョンでは、ブックを開くたびにメッセージが表示されます。これはしばらくすると迷惑になります。

Workbook_Openプロシージャは、ほとんどすべてを実行できます。これらのイベントハンドラーは、多くの場合、次の目的で使用されます。

  • ウェルカムメッセージの表示(フランクのクールなワークブックなど)
  • 他のブックを開く
  • ブック内の特定のワークシートをアクティブ化する
  • カスタムショートカットメニューの設定

これは、GetSetting関数とSaveSetting関数を使用してブックが開かれた回数を追跡するWorkbook_Openプロシージャの最後のExcelVBAの例です。SaveSetting関数はWindowsレジストリに値を書き込み、GetSetting関数はその値を取得します(詳細については、ヘルプシステムを参照してください)。次のExcelVBAの例では、レジストリからカウントを取得してインクリメントし、レジストリに保存し直します。また、ブックが開かれた回数に対応するCntの値をユーザーに通知します。

プライベートサブWorkbook_Open()
  Dim Cnt As Long
  Cnt = GetSetting( "MyApp"、 "Settings"、 "Open"、0)
  Cnt = Cnt + 1
  SaveSetting "MyApp"、 "Settings"、 "Open"、Cnt
  MsgBox「このワークブックは「&Cnt&」回開かれました。」
エンドサブ

Excel VBAの例:紹介イベントの例

Workbook_Openイベントハンドラーを使用して、ブックが開かれた回数を追跡します。

Excel VBAの例:ブックのBeforeCloseイベント

これは、ブックが閉じられる直前に自動的に実行されるExcel VBAWorkbook_BeforeCloseイベントハンドラプロシージャの例です。このプロシージャは、ThisWorkbookオブジェクトのコードウィンドウにあります。

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  文字列としての薄暗いメッセージ
  薄暗いAnsAs Long
  文字列としての薄暗いFName
  Msg = "このファイルのバックアップを作成しますか?"
  Ans = MsgBox(Msg、vbYesNo)
  Ans = vbYesの場合
    FName = "F:\ BACKUP \"&ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs FName
  終了する場合
エンドサブ

このルーチンは、メッセージボックスを使用して、ブックのバックアップコピーを作成するかどうかをユーザーに尋ねます。答えが「はい」の場合、コードはSaveCopyAsメソッドを使用して、ファイルのバックアップコピーをドライブFに保存します。この手順を自分の用途に適合させる場合は、ドライブとパスを変更する必要があります。

Excelプログラマーは、Workbook_BeforeCloseプロシージャを使用して、自分でクリーンアップすることがよくあります。たとえば、ブックを開くときにWorkbook_Openプロシージャを使用して一部の設定を変更する場合(ステータスバーを非表示にするなど)、ブックを閉じるときに設定を元の状態に戻すことが適切です。この電子ハウスキーピングは、Workbook_BeforeCloseプロシージャを使用して実行できます。

Workbook_BeforeCloseイベントを使用するときは、次の点に注意してください。Excelを閉じて、最後の保存以降に開いているファイルが変更された場合、Excelには通常の「変更を保存しますか」というメッセージボックスが表示されます。[キャンセル]ボタンをクリックすると、終了プロセス全体がキャンセルされます。ただし、Workbook_BeforeCloseイベントはとにかく実行されます。

Excel VBAの例:ブックのBeforeSaveイベント

BeforeSaveイベントは、その名前が示すように、ブックが保存される前にトリガーされます。このイベントは、[ファイル]→[保存]または[ファイル]→[名前を付けて保存]を選択したときに発生します。

ThisWorkbookオブジェクトのコードウィンドウに配置される次の手順は、BeforeSaveイベントを示しています。ルーチンは、ブックが保存されるたびにセル(Sheet1のセルA1)の値を更新します。つまり、セルA1は、ファイルが保存された回数を追跡するためのカウンターとして機能します。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI _
  ブール値として、ブール値としてキャンセル)
  範囲としての薄暗いカウンター
  Set Counter = Sheets( "Sheet1")。Range( "A1")
  Counter.Value = Counter.Value + 1
エンドサブ

Workbook_BeforeSaveプロシージャには、SaveAsUIとCancelの2つの引数があることに注意してください。これらの引数がどのように機能するかを示すために、ブックが保存される前に実行される次のマクロを調べてください。この手順では、ユーザーが別の名前でブックを保存できないようにします。ユーザーが[ファイル]→[名前を付けて保存]を選択した場合、SaveAsUI引数はTrueです。

コードが実行されると、SaveAsUI値がチェックされます。この変数がTrueの場合、プロシージャはメッセージを表示し、CancelをTrueに設定します。これにより、保存操作がキャンセルされます。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI _
  ブール値として、ブール値としてキャンセル)
  SaveAsUIの場合
    MsgBox「このブックのコピーを保存することはできません!」
  キャンセル= True
  終了する場合
エンドサブ

この手順では、誰かが別の名前でコピーを保存することを実際に妨げることはないことに注意してください。誰かが本当にそれをしたいのなら、彼または彼女はマクロを無効にしてワークブックを開くことができます。マクロが無効になると、イベントハンドラープロシージャも無効になります。これは、結局のところ、マクロであるため意味があります。


スマートシート 9.1.1

スマートシート 9.1.1

Smartsheet は、プロジェクトの管理、ワークフローの構築、チームとの共同作業を可能にする動的な作業プラットフォームです。

共有ポイント

共有ポイント

SharePoint は、さまざまなワークフロー アプリケーション、「リスト」データベース、その他の Web コンポーネント、およびビジネス グループの共同作業を制御するためのセキュリティ機能を使用する Web ベースのコラボレーション システムです。

パーペチュアルカレンダー 1.0.38/1.0.36

パーペチュアルカレンダー 1.0.38/1.0.36

Van Nien Calendar は、携帯電話でカレンダーを表示するアプリケーションです。携帯電話で太陰太陽の日付をすぐに確認できるため、重要な仕事を計画することができます。

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook は、Microsoft Corporation によって開発されたビジネスおよび生産性アプリケーションです。

クリックアップ

クリックアップ

ClickUp は、あらゆるビジネスにとって最も評価の高い生産性プラットフォームの 1 つです。Google、Booking.com、サンディエゴ・パドレス、Uber などの大企業はすべて、職場の生産性を向上させるために ClickUp を使用しています。

PDF-XChange ビューア 2.5.322.10

PDF-XChange ビューア 2.5.322.10

PDF は、テキスト ドキュメントの読み取り、作成、送信に一般的に使用される形式になっています。その結果、この種のドキュメントに使用されるプログラムの数も増加しました。PDF-XChange Viewer は、ますます多くの PDF ビューアの 1 つです。

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice は、特に Excel、PowerPoint、Word など、Microsoft 365 に匹敵する Office アプリケーションの完全なスイートを提供します。プロジェクトをより効率的に管理できるようになり、いくつかのファイル形式がサポートされます。

iTaxviewer 1.8.7をダウンロード

iTaxviewer 1.8.7をダウンロード

iTaxViewer ソフトウェアは、現在最も人気のある XML ファイル読み取りソフトウェアです。このソフトウェアは、国税総局のXML形式の電子申告書を閲覧するためのアプリケーションです。

Nitro PDF リーダー

Nitro PDF リーダー

Nitro PDF Reader は、ほとんどの人が PDF ドキュメントを使用して毎日実行する基本的なタスクをすべてカバーする便利な PDF エディターです。

Foxit リーダー 12

Foxit リーダー 12

Foxit Reader は主に PDF リーダーですが、PDF ファイルの作成、署名、編集、注釈の追加も可能です。オペレーティング システム上で動作し、Microsoft Office パッケージのさまざまなプログラム用のプラグインがあります。