- ベストアンサー
エクセルで定時に音を出す
エクセル初心者です。 こんなこと出来ませんでしょうか? 決められたセルで、毎日一定時間に、空白(未作業)の場合、音で知らせる。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
試しに、以下のコードで作って見ましたので、宜しかったら次の操作手順で テストしてみてください。 (サウンドプログラムにSNDREC32.EXEを使用し、その終了にAPIを使用しています。) 1.Alt + F11 で VBE(Visual Basic Editor)を開きます。 2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。 3.モジュールウィンドウに下記コードをコピーして貼り付けます。 4.コードの設定項目を実情に合わせ変更します。 5.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります 6.Excelを保存終了後、再起動すると設定時刻時点で指定セルが、空欄のとき 設定したサウンドが鳴ります。 (OSによりSoundプログラムの変更が、必要かも知れません。Win98で検証) Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Declare Function PostMessage Lib "user32" Alias _ "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Public Const WM_CLOSE = &H10 Public Const SoundFile = "Logoff.wav" ' <------ Wavファイル指定 Sub Auto_Open() Application.OnTime Now + TimeValue("00:01:00"), "sound_on" End Sub Sub sound_on() Const SetTime = "20:32" ' <------ 時刻設定 Const SheetName = "Sheet1" ' <------ シート指定 Const TargetCell = "A1" ' <---- セル指定 Const FilePath = "c:\windows\media\" ' <-----Wavファイルパス名 Dim RetVal If Format(Now(), "hh:mm") > SetTime Then If IsEmpty(Sheets(SheetName).Range(TargetCell).Value) Then RetVal = Shell("C:\WINDOWS\SNDREC32.EXE " & _ FilePath & SoundFile, vbHide) SendKeys " ", True Application.Wait (Now + TimeValue("0:00:05")) ShutdownOtherApp Exit Sub Else Exit Sub End If Else Auto_Open End If End Sub Sub ShutdownOtherApp() Dim hWnd As Long hWnd = FindWindow(vbNullString, SoundFile & " - サウンド レコーダー") Call PostMessage(hWnd, WM_CLOSE, 0, 0) End Sub
その他の回答 (1)
- ja7awu
- ベストアンサー率62% (292/464)
> 早速時刻だけ変更してやってみましたが、音がでません。 これはサンプルコードですので、そこだけでは、必ず鳴るとは限りません。 そのPC環境により、コードの変更を必要とします。 Logoff.wavというファイルありましたか? サウンドのプログラムとWavファイルを現状に合わせてコードを変更するのです。 例えば、このコードでは、 スタートから「ファイル名を指定して実行」で「名前」欄に下記1行を 貼り付けて、[OK]すると「サウンドプログラム」が起動します。 そして「スペース」キーで音が再生されます。 そういう環境でのコードです。 C:\WINDOWS\SNDREC32.EXE c:\windows\media\Logoff.wav このC:\WINDOWS\SNDREC32.EXE の部分とc:\windows\media\Logoff.wav を 実情に合わせ変更して、これで鳴ることをまず確認します。 これによって、VBAコードの該当ヶ所を変更するのです。 VBAの知識がないと難しいかも知れませんね。
補足
お世話様です。 とりあえず、音が再生される環境は確認しました。 C:\WINDOWS\SNDREC32.EXE c:\windows\media\Logoff.wav 次の事が、よくわかりません。 このC:\WINDOWS\SNDREC32.EXE の部分と c:\windows\media\Logoff.wav を 実情に合わせ変更して、これで鳴ることをまず確認し ます。
補足
ありがとうございます。早速時刻だけ変更してやってみましたが、音がでません。 WIN(ME)で、エクセル2000 です。