• ベストアンサー

エクセルで定時に音を出す

エクセル初心者です。 こんなこと出来ませんでしょうか? 決められたセルで、毎日一定時間に、空白(未作業)の場合、音で知らせる。

質問者が選んだベストアンサー

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.1

試しに、以下のコードで作って見ましたので、宜しかったら次の操作手順で テストしてみてください。 (サウンドプログラムに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

123-456
質問者

補足

ありがとうございます。早速時刻だけ変更してやってみましたが、音がでません。 WIN(ME)で、エクセル2000 です。

その他の回答 (1)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

> 早速時刻だけ変更してやってみましたが、音がでません。 これはサンプルコードですので、そこだけでは、必ず鳴るとは限りません。 その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の知識がないと難しいかも知れませんね。

123-456
質問者

補足

お世話様です。 とりあえず、音が再生される環境は確認しました。   C:\WINDOWS\SNDREC32.EXE               c:\windows\media\Logoff.wav 次の事が、よくわかりません。    このC:\WINDOWS\SNDREC32.EXE の部分と       c:\windows\media\Logoff.wav を   実情に合わせ変更して、これで鳴ることをまず確認し  ます。

関連するQ&A