Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excelで目覚まし時計を設定する方法|VBAマクロで実現する3つの簡単テクニック

この記事では、Excelで目覚まし時計(アラーム)を設定する方法をご紹介します。Excelでの作業中に、「特定の時刻に大事な用件をリマインドしてほしい」と思ったことはありませんか?そんなときに役立つのが、今回ご紹介するテクニックです。ここでは、Excelでアラームを設定する複数の方法をわかりやすく解説していきます。それでは早速始めましょう。

Excelで目覚まし時計を設定する3つの便利な方法

このセクションでは、図解つきでExcelにアラームを設定する3つの効果的な方法をご紹介します。

  • 方法1: ビープ音を3回鳴らすアラームの設定
  • 方法2: お好みのカスタム音声を使ったアラームの設定
  • 方法3: アラーム時刻にメッセージを表示&読み上げさせる方法(最もおすすめ)

それぞれ順番に見ていきましょう。

方法1:ビープ音でアラームを設定する

最初の方法では、VBAモジュールを実行して、設定した時刻にビープ音を3回鳴らすアラームを作成します。以下の手順に沿って進めてください。

手順:

  • まず、Alt+F11キーを押してVBE(Visual Basic Editor)を開きます。または、「開発」タブ →「Visual Basic」から開くこともできます。

Excelで目覚まし時計を設定する方法|VBAマクロで実現する3つの簡単テクニック

  • 次に、「挿入」→「標準モジュール」を選択して、新しいモジュールを挿入します。

Excelで目覚まし時計を設定する方法|VBAマクロで実現する3つの簡単テクニック

  • モジュールに以下のコードを記述します。
'ビープ音によるアラーム
Sub Beep_Alarm()
 Dim beepat As String
 beepat = InputBox("Give Alarm at", "hh:mm:ss " & _
 Format(Now, "mm:hh"), "23:30")
 If beepat = "" Then
 MsgBox "terminated"
 Exit Sub
 End If
 Application.OnTime TimeValue(beepat), "Beep_Me"
End Sub
Sub beep_me()
 Beep
 Application.OnTime (Now + TimeSerial(0, 0, 0.8)), "beep_me2"
End Sub
Sub beep_me2()
 Beep
 Application.OnTime (Now + TimeSerial(0, 0, 0.8)), "beep_me3"
End Sub
 Sub beep_me3()
 Beep
End Sub

Excelで目覚まし時計を設定する方法|VBAマクロで実現する3つの簡単テクニック

🗝️ コードの仕組みを解説

まず、Beep_Alarmというサブルーチンを宣言します。続いてbeep_atという変数を定義し、そこにInputBox(入力ボックス)を割り当てます。InputBoxには引用符内の文字が表示され、ユーザーにアラーム時刻の入力を求めます。その後、TimeValue関数によって指定時刻になるとbeep_meサブルーチンが呼び出され、さらにbeep_me2beep_me3が連鎖的に実行されます。この3つのサブルーチンにより、アラーム時刻にちょうど3回のビープ音が鳴る仕組みです。

  • 画面上部の「実行」ボタンをクリックするか、F5キーを押してコードを実行します。

Excelで目覚まし時計を設定する方法|VBAマクロで実現する3つの簡単テクニック

  • アラーム時刻の入力を求めるウィンドウが表示されます。ここでは24時間形式(hh:mm:ss)で時刻を入力してください。

Excelで目覚まし時計を設定する方法|VBAマクロで実現する3つの簡単テクニック

  • 時刻を設定すれば準備完了。設定した時刻になったら、ピッ・ピッ・ピッと3回のビープ音が鳴ります。

これで、Excel上でビープ音によるアラームを設定できました。

関連記事: Excelでデジタル時計を作成する方法

方法2:カスタム音声を鳴らすアラームを設定する

2つ目の方法では、お好みの音声ファイル(wav形式)をアラーム音として再生する方法をご紹介します。以下の手順に従ってください。

手順:

  • 方法1と同様に、Visual Basicウィンドウで新しいモジュールを挿入します。
  • モジュールに以下のコードを記述します。
'カスタム音声によるアラーム
#If Win64 Then
Private Declare PtrSafe Function Play_Sound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal AA_lpszName As String, _
ByVal AA_Module As LongPtr, ByVal AA_Flags As Long) As Boolean
#Else
Private Declare Function Play_Sound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal AA_lpszName As String, _
ByVal AA_Module As Long, ByVal AA_Flags As Long) As Boolean
#End If
Const AA_SND_SYNC = &H0
Const AA_SND_ASYNC = &H1
Const AA_SND_FILENAME = &H20000
Sub CustomSound_Alarm()
Dim beepat As String
beepat = InputBox("Give Alarm at", "hh:mm:ss " & _
Format(Now, "mm:hh"), "11:30")
If beepat = "" Then
MsgBox "Terminated"
Exit Sub
End If
Application.OnTime TimeValue(beepat), "AlarmSound2"
End Sub
Sub AlarmSound2()
Call Play_Sound("F:\90_Aniruddah\90_57\alarm1.wav", _
0, AA_SND_ASYNC Or AA_SND_FILENAME)
End Sub

Excelで目覚まし時計を設定する方法|VBAマクロで実現する3つの簡単テクニック

🗝️ コードの仕組みを解説

まず、Windowsの64bit版とその他のバージョンに対応できるよう、2つのプライベート関数を宣言しています。次に、SND_SYNCSND_ASYNCSND_FILENAMEという3つの定数を定義します。その後、CustomSound_Alarmサブルーチンで変数beepatにInputBoxを割り当て、アラーム時刻を受け取ります。指定時刻になるとTimeValue経由でAlarmSound2サブルーチンが呼び出され、パスで指定されたローカルの音声ファイルが再生されます。

重要: コード内の F:\90_Aniruddah\90_57\alarm1.wav の部分は、ご自身の環境に合わせて書き換える必要があります。

  • F:\90_Aniruddah\90_57\alarm1.wav の部分を、自分の音声ファイルの保存先パスに変更します。ファイルの場所は、エクスプローラーで該当ファイルを右クリックし、「パスのコピー」で取得すると便利です。
  • F5キーでコードを実行すると、アラーム時刻を尋ねるメッセージボックスが表示されます。時刻を24時間形式で入力し、OKをクリックしましょう。

Excelで目覚まし時計を設定する方法|VBAマクロで実現する3つの簡単テクニック

  • 設定した時刻になると、自分で選んだカスタム音声が再生されます。

方法3:メッセージの表示と読み上げを行うアラームを設定する

多くの場合、アラームと合わせてメッセージも確認したいものです。この方法では、設定した時刻にメッセージボックスを表示し、さらにその内容を読み上げる機能を実装します。面白そうだと思いませんか?それでは手順を見ていきましょう。

手順:

  • 方法1・2と同じく、Visual Basicウィンドウを開いて新しいモジュールを挿入します。
  • モジュールに以下のコードを記述します。
'メッセージ表示・読み上げアラーム
Sub Reading_Message_Alarm()
 Dim beepat As String
 beepat = InputBox("Give Alarm at", "hh:mm:ss " & _
 Format(Now, "mm:hh"), "11:30")
 If beepat = "" Then
 MsgBox "Terminated"
 Exit Sub
 End If
 Application.OnTime TimeValue(beepat), "DisplayAlarm"
End Sub
Sub DisplayAlarm()
Application.Speech.Speak ("This is the message that will be read out during alarm time.")
MsgBox "This is the message that will be displayed in the messagebox"
End Sub

Excelで目覚まし時計を設定する方法|VBAマクロで実現する3つの簡単テクニック

🗝️ コードの仕組みを解説

まずReading_Message_Alarmサブルーチンを宣言し、変数beepatにInputBoxを割り当ててアラーム時刻を取得します。設定された時刻になると、TimeValueを通じてDisplayAlarmサブルーチンが呼び出されます。このサブルーチンでは、Application.Speech.Speakによってメッセージを読み上げた後、MsgBoxで同じ内容を画面に表示します。なお、英語のメッセージ部分は、日本語の文章に置き換えても問題なく動作します。

  • F5キーでコードを実行すると入力ウィンドウが開くので、アラーム時刻を入力してOKを押します。

Excelで目覚まし時計を設定する方法|VBAマクロで実現する3つの簡単テクニック

  • アラーム時刻になると、まずメッセージが読み上げられ、その後下の画像のようにメッセージボックスが表示されます。

Excelで目覚まし時計を設定する方法|VBAマクロで実現する3つの簡単テクニック

関連記事: Excelで動作する時計を作る方法

注意点

  • カスタム音声をアラームとして使う場合は、.wav形式のファイルを用意してください。Mp3形式では正常に動作しない場合があるので注意しましょう。
  • アラーム機能はExcelを開いている間のみ有効です。ファイルを閉じるとアラームは作動しないため、必要な時間帯はExcelを起動しておきましょう。

まとめ

以上、Excelで目覚まし時計(アラーム)を設定する方法について解説しました。ビープ音シンプルな通知から、カスタム音声の再生、さらにはメッセージの読み上げまで、用途に合わせて使い分けることができます。この記事が役に立ったら、ぜひ友人や同僚にもシェアしてください。ご不明な点があればお気軽にお問い合わせください。Excelに関する興味深い記事をもっと見たい方は、ぜひ当サイトの他の記事もチェックしてみてください。

関連記事

  • Excelで時計チャートを作成する方法
  • Excelでデジタル時計を作るためのVBAコードの使い方
  • Excelでアナログ時計を作成する方法
  • Excel VBAでUserFormにデジタル時計を表示する完全ガイド
  1. Windows 11/10のOutlookで表示される間違ったメールエイリアスを修正する方法

    スマートフォンやタブレットなどのモバイルデバイスの普及に伴い、さまざまなメールクライアントが登場していますが、Microsoftが標準搭載しているメールクライアント「Outlook」は、今なお世界で最も人気のあるアプリケーションです。しかし、Windows 11/10の一部ユーザーから、アカウント設定に誤ったメールアカウントが表示されるという報告があります。同じ問題でお困りの方は、以下の対処法を試してみてください。 作業を始める前に、まずローカルアカウントに切り替えてサインインし、その後再度Microsoftアカウントに戻してみてください。「設定」>「アカウント」から操作できます。これ

  2. Outlookエラー「フォルダーを展開できません。十分なメモリがありません」の対処法

    Microsoft Outlookでメールアカウントの最上位フォルダーを展開しようとした際、「フォルダーを展開できません。操作を実行するのに十分なメモリがありません(Cannot expand the folder. There is not enough memory available to perform the operation)」というエラーが表示されることがあります。複数デバイス間でメールを同期するため、IMAPやExchangeアカウントを作成している組織は多くありますが、このOutlookエラーは主にExchangeアカウントで発生します。同様の問題でお困りの方は、以下の対処