Excel 2016VBAでOnTimeイベントとキープレスイベントを使用する方法

Excel 2016VBAでOnTimeイベントとキープレスイベントを使用する方法

Excel 2016のVBAプログラミングで使用できる、オブジェクトに関連付けられていないイベントには、時間とキー押下の2種類があります。時間とキー押下はワークブックやワークシートなどの特定のオブジェクトに関連付けられていないため、これらのイベントは通常のVBAモジュールでプログラムします。

OnTimeイベント

OnTimeイベントは、特定の時刻が発生したときに発生します。次の例は、午後3時のイベントが発生したときにExcelにプロシージャを実行させる方法を示しています。この場合、ロボットの音声が、メッセージボックスを伴って目を覚ますように指示します。

サブSetAlarm()
  Application.OnTime 0.625、「DisplayAlarm」
エンドサブ
サブDisplayAlarm()
  Application.Speech.Speak(「ねえ、起きて」)
  MsgBox「午後の休憩の時間です!」
エンドサブ

この例では、ApplicationオブジェクトのOnTimeメソッドが使用されています。このメソッドは、時間(0.625または3:00 pm)と時間イベントが発生したときに実行するSubプロシージャの名前(DisplayAlarm)の2つの引数を取ります。

この手順は、会議や予定を忘れてしまうほど仕事に夢中になりがちな場合に非常に役立ちます。OnTimeイベントを設定するだけで、思い出すことができます。

ほとんどの人は、Excelの番号付けシステムの観点から時間を考えるのは難しいと感じています。したがって、VBATimeValue関数を使用して時間を表すことができます。TimeValueは、時間のように見える文字列をExcelが処理できる値に変換します。次のステートメントは、午後3時のイベントをプログラムする簡単な方法を示しています。

Application.OnTime TimeValue(“ 3:00 pm”)、“ DisplayAlarm”

現在の時刻(たとえば、今から20分後)を基準にしてイベントをスケジュールする場合は、次のようなステートメントを使用できます。

Application.OnTime Now + TimeValue(“ 00:20:00”)、“ DisplayAlarm”

OnTimeメソッドを使用して、特定の日にVBAプロシージャを実行することもできます。コンピューターが実行を継続し、手順が記載されたブックが開いたままになっていることを確認する必要があります。次のステートメントは、2016年12月31日の午後5時にDisplayAlarmプロシージャを実行します。

Application.OnTime DateValue(“ 2016年12月31日午後5時”)、“ DisplayAlarm”

この特定のコード行は、家に帰って大晦日のお祭りの準備をする必要があることを警告するのに役立ちます。

OnTimeイベントを使用する別の例を次に示します。UpdateClockプロシージャを実行すると、セルA1に時間が書き込まれ、5秒後に別のイベントもプログラムされます。このイベントは、UpdateClockプロシージャを再実行します。正味の効果は、セルA1が5秒ごとに現在の時刻で更新されることです。イベントを停止するには、StopClockプロシージャ(イベントをキャンセルします)を実行します。NextTickは、次のイベントの時間を格納するモジュールレベルの変数であることに注意してください。

日付として薄暗いNextTick
サブUpdateClock()
'セルA1を現在の時刻で更新します
  ThisWorkbook.Sheets(1).Range(“ A1”)=時間
'今から5秒後に次のイベントを設定します
  NextTick = Now + TimeValue(“ 00:00:05”)
  Application.OnTime NextTick、「UpdateClock」
エンドサブ
サブStopClock()
'OnTimeイベントをキャンセルします(時計を停止します)
  エラー時に次を再開
  Application.OnTime NextTick、「UpdateClock」、、 False
エンドサブ

OnTimeイベントは、ブックが閉じられた後も持続します。つまり、StopClockプロシージャを実行せずにブックを閉じると、ブックは5秒後に再び開きます(Excelがまだ実行されていると仮定)。これを防ぐには、次のステートメントを含むWorkbook_BeforeCloseイベントプロシージャを使用します。

StopClockを呼び出す

OnTimeメソッドには2つの追加の引数があります。この方法を使用する場合は、詳細についてヘルプシステムを参照してください。

かなり複雑なアプリケーションを見たい場合は、このアナログ時計アプリケーションをチェックしてください。文字盤は実際にはチャートであり、チャートは時刻を表示するために毎秒更新されます。役に立たないが、楽しい。

Excel 2016VBAでOnTimeイベントとキープレスイベントを使用する方法

アナログ時計アプリケーション。

キープレスイベント

作業中、Excelは入力内容を常に監視します。このため、キーストロークまたはキーの組み合わせがプロシージャを実行するように設定できます。

PgDnキーとPgUpキーを再割り当てする例を次に示します。

サブSetup_OnKey()
  Application.OnKey“ {PgDn}”、“ PgDn_Sub”
  Application.OnKey“ {PgUp}”、“ PgUp_Sub”
エンドサブ
サブPgDn_Sub()
  エラー時に次を再開
  ActiveCell.Offset(1、0).Activate
エンドサブ
Sub PgUp_Sub()
  エラー時に次を再開
  ActiveCell.Offset(-1、0).Activate
エンドサブ

Setup_OnKeyプロシージャを実行してOnKeyイベントを設定した後、PgDnを押すと1行下に移動します。PgUpを押すと、1行上に移動します。

キーコードは括弧ではなく中括弧で囲まれていることに注意してください。キーボードコードの完全なリストについては、ヘルプシステムを参照してください。OnKeyを検索します。

この例では、On Error Resume Nextを使用して、生成されたエラーを無視します。たとえば、アクティブセルが最初の行にある場合、1行上に移動しようとするとエラーが発生し、無視しても問題ありません。また、チャートシートがアクティブな場合、アクティブなセルはありません。

次のルーチンを実行すると、OnKeyイベントがキャンセルされます。

サブCancel_OnKey()
  Application.OnKey“ {PgDn}”
  Application.OnKey“ {PgUp}”
エンドサブ

OnKeyメソッドの2番目の引数として空の文字列を使用して、OnKeyイベントキャンセルされませ。むしろ、Excelは単にキーストロークを無視します。たとえば、次のステートメントは、Alt + F4を無視するようにExcelに指示します。パーセント記号はAltキーを表します。

  Application.OnKey“%{F4}”、““

OnKeyメソッドを使用して、マクロを実行するためのショートカットキーを割り当てることができますが、このタスクには[マクロオプション]ダイアログボックスを使用する必要があります。

コードを含むブックを閉じてExcelを開いたままにすると、OnKeyメソッドはリセットされません。結果として、ショートカットキーを押すと、Excelはマクロを含むファイルを自動的に開きます。これを防ぐには、Workbook_BeforeCloseイベントコードにコードを含めて、OnKeyイベントをリセットする必要があります。


スマートシート 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 パッケージのさまざまなプログラム用のプラグインがあります。