はじめに
Sequence MakerはExcelから測定器を制御可能にするアドインです。Sequence Makerには専用コマンドというものが用意されており、それを使うとVBAの処理を呼び出すことができます。この記事ではSequence MakerとVBAを使用してカエルの歌を演奏する方法を解説します。なぜカエルの歌かと言えば、梅雨入りしたからです。Sequence Makerについての詳細は以下の記事を参照ください。
また、Sequence MakerからVBAの処理を呼び出す方法は以下の記事を参照ください。
お断り
本記事の内容はSequence Maker開発元の公式見解ではなく、あくまでも個人が趣味の範囲内で執筆しているものです。記事の内容について開発元へ問い合わせることはお控えください。ご質問・要望などは各記事のコメント欄へお願いいたします。
VBAの実装
パソコンで音を鳴らす最も簡単な方法はビープ音を使用することです。ビープ音はVBAからBeep関数を呼ぶことで鳴らすことができます。
今回は音程と長さを指定して音を鳴らす関数「Melody(音程, 長さ)」を作成しました。
なお、休符は音程に「休」を指定することにします。
ExcelのVBAエディタを起動し、標準モジュール内に以下を記述します。
Option Explicit
'Beep関数とSleep関数を使用するための宣言
#If Win64 Then
Declare PtrSafe Function Beep Lib "kernel32" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long)
#Else
Declare Function Beep Lib "kernel32" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
#End If
'Beep音を鳴らす処理
Sub Melody(tone As String, time As Integer)
Dim toneInt As Integer
Dim timeInt As Integer
timeInt = 500 * 4 / time
If tone = "休" Then
Sleep timeInt
Else
Select Case tone
Case "ド"
toneInt = 262
Case "レ"
toneInt = 294
Case "ミ"
toneInt = 330
Case "ファ"
toneInt = 349
Case "ソ"
toneInt = 392
Case "ラ"
toneInt = 440
Case "シ"
toneInt = 494
End Select
Call Beep(toneInt, timeInt)
End If
End Sub
Sequence Makerから演奏する
Excelのセルに以下を入力します。
以下にコピペ用のコードも示します。
#MACRO(Melody,ド,4)
#MACRO(Melody,レ,4)
#MACRO(Melody,ミ,4)
#MACRO(Melody,ファ,4)
#MACRO(Melody,ミ,4)
#MACRO(Melody,レ,4)
#MACRO(Melody,ド,2)
#MACRO(Melody,ミ,4)
#MACRO(Melody,ファ,4)
#MACRO(Melody,ソ,4)
#MACRO(Melody,ラ,4)
#MACRO(Melody,ソ,4)
#MACRO(Melody,ファ,4)
#MACRO(Melody,ミ,2)
#MACRO(Melody,ド,4)
#MACRO(Melody,休,4)
#MACRO(Melody,ド,4)
#MACRO(Melody,休,4)
#MACRO(Melody,ド,4)
#MACRO(Melody,休,4)
#MACRO(Melody,ド,4)
#MACRO(Melody,休,4)
#MACRO(Melody,ド,8)
#MACRO(Melody,ド,8)
#MACRO(Melody,レ,8)
#MACRO(Melody,レ,8)
#MACRO(Melody,ミ,8)
#MACRO(Melody,ミ,8)
#MACRO(Melody,ファ,8)
#MACRO(Melody,ファ,8)
#MACRO(Melody,ミ,4)
#MACRO(Melody,レ,4)
#MACRO(Melody,ド,2)
さて、準備ができたら、一番最初のセルを選択し「コマンド送受信」ボタンを押してみましょう。
なかなかシュールなメロディーが聴こえてきますよ。。。。🐸
まとめ
今回はSequence Makerを使用してカエルの歌を演奏してみました。
もはや計測器制御とは関係ない状態になっていますが、音が鳴らせるといろいろと便利です。例えば、何か処理が終わった合図として音を鳴らすとか、何か測定異常が発生したときに音を鳴らすとか、いろいろ使える・・・かもしれません?