Welcome to Takajun's Room

パソコン、オーディオ、カメラ、ビデオ、車、食べ歩きを中心とした blog です。

Excel で時間が来たら音楽を鳴らしす。タイマーマクロ(1)

毎日一定時刻に忘れずに作業をする必要がでてきました。

会社でのスケジュール管理は salesforce の ToDo 機能を利用して、メンバーのスケジュールとも共有していますが、個人的なスケジュール管理は Excel で行っています。そこで この Excel でのスケジュール表を利用して簡単なマクロプログラムを作り、時間が来たら、ポップアップメッセージと音楽を鳴らすことにしました。

Excel のマクロシートを開き、最初の行に

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

と記載します。Excel そのものには音楽を再生する機能はありませんので WindowsAPI (Application Programming Interface) を呼び出すための宣言文ですね。行頭の Private は記載しなくても動きます。 記載するなら Private より Public と記載した方がいいかも。もっとも使い方によりますが・・・

次に、スケジュール表を開いたときにこのマクロプログラムが自動実行できるようにマクロ名を決め打ちします。

Sub Auto_Open()

End Sub

で、「時間来たら教えてね」とさせたい仕事を挟み込みます。

Sub Auto_Open()

Application.OnTime TimeValue("12:00:00"), "AlarmMessage1"

Application.OnTime TimeValue("13:00:00"), "AlarmMessage2"

End Sub

これで お昼になったら AlarmMessage1、13時になったら AlarmMessage2 を実行します。

Sub AlarmMessage1()

Sound1

MsgBox "昼休み (^_^)/"

End Sub


Sub AlarmMessage2()

Sound2

MsgBox "オラオラ 仕事せい"

End Sub

これで音楽が鳴ってメッセージが表示されます。音楽を鳴らすコードです。

Sub Sound1()

Dim SoundFile As String, rc As Long

SoundFile = "C:\Windows\Media\tada.wav"

rc = mciSendString("Play " & SoundFile, "", 0, 0)

End Sub


Sub Sound2()

Dim SoundFile As String, rc As Long

SoundFile = "C:\Windows\Media\ding.wav"

rc = mciSendString("Play " & SoundFile, "", 0, 0)

End Sub

事前にたとえば D:\sound\JulieLondon-Fly Me to the Moon.wav とかを用意しておけば

SoundFile = "D:\sound\JulieLondon-Fly Me to the Moon.wav"

とすることで好きな音楽を鳴らすことができます。因みに Dave Brubeck の Take Five を鳴らしたら うるさいと怒られました。 (^^ゞ




excel
amazon

excel
楽天