Tassosは、特定のセルの値がしきい値を超えたときにExcelにオーディオファイルを再生させたいと考えています。たとえば、セルの値が999を超える場合、特定のサウンドファイルを再生したいとします。

Excelでこれを行う組み込みの方法はありません(ただし、Excelの条件付き書式設定機能への興味深い追加です)。ただし、マクロを使用してWindows APIを呼び出すことにより、サウンドファイルを再生できます。

ブックのSheetオブジェクトにコードを配置することから始める必要があります。 (ワークシートのタブを右クリックし、[コンテキスト]メニューから[コードの表示]を選択します。)次のコードを使用して、関数「playsound」を宣言します。

Private Declare Function PlaySound Lib "winmm.dll" _   Alias "PlaySoundA" (ByVal lpszName As String, _   ByVal hModule As Long, ByVal dwFlags As Long) As Long

Const SND_SYNC = &H0     Const SND_ASYNC = &H1     Const SND_FILENAME = &H20000

次に、実際にサウンドファイルを再生する短い小さなマクロを作成できます。サウンドファイルがブックと同じディレクトリにあると仮定すると、次のコードが機能します。 (適切なファイル名と場所が含まれるようにコードを変更する必要があります。)

Sub PlayWAV()

WAVFile = ThisWorkbook.Path & "\MyAudioFile.wav"

Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)

End Sub

最後に、ファイルを再生するときの基準を確立します。この場合、ターゲットセルの値がしきい値999を超えるたびにサウンドファイルを再生する必要があります。以下では、セルC5でその状態を確認し、必要に応じてサウンドファイルを再生します。

Private Sub Worksheet_Change(ByVal Target As Range)

Threshold = 999     If Range("C5").Value > Threshold Then PlayWAV End Sub

これで、セルC5の値が変更されて999を超えると、オーディオファイルが1回再生されます。値が999未満に変更された場合、何も再生されません。値が999を超える別の値に変更されると、サウンドファイルが再度再生されます。

オーディオファイルの再生に関するその他のアイデアについては、次のサイトを確認してください。

http://www.j-walk.com/ss/excel/tips/tip87.htm http://www.cpearson.com/excel/PlaySound.aspx

また、データ検証を使用して、Excelでシステムサウンドを再生できることにも注意してください。検証基準(_ExcelTips_の他の問題で説明)を設定し、[エラー]タブで、Excelを停止するか、警告するか、ユーザーに通知するかを指定するだけです。基準に合わない値をセルに入力すると、ダイアログボックスが表示され、システム音が聞こえます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(6559)は、Microsoft Excel 97、2000、2002、および2003に適用されます。