1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

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のセルに以下を入力します。

image.png

以下にコピペ用のコードも示します。

#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を使用してカエルの歌を演奏してみました。
もはや計測器制御とは関係ない状態になっていますが、音が鳴らせるといろいろと便利です。例えば、何か処理が終わった合図として音を鳴らすとか、何か測定異常が発生したときに音を鳴らすとか、いろいろ使える・・・かもしれません?

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?