とかげのたからもの

バンドが趣味の育児中会社員です。音楽鑑賞とジョジョとレミゼラブルが好きです。

ビンゴのマクロを作る話

イチコがおさるのジョージの「ビンゴ山」というエピソードを愛しすぎていて、かれこれ1年以上繰り返し見てる。

の割にはこれまでビンゴ自体にはあまり強い関心を示していなかったのだが、昨日旦那とイチコで100均行った時についにビンゴカードを買ってきよった。

ビンゴの紙と、番号だけ書いてある小さいカードがセットで、カードをめくって数字を言うタイプ。この小さいカード絶対にすぐ紛失するやろ〜〜〜という気持ちがすごかったので、自分でマクロ組んでビンゴができるようにしてみた。まあビンゴのアプリなんて死ぬほどありそうなのだが、ちょっと作ってみたかったというのは正直なところ。

 

で、作った。

f:id:takki_bear:20221231052355j:image

つぎのばんごうボタンを押すと1〜75までの数字をランダムに発表し、すでに出た数字には●マークが付けられるという仕様。ゲームが終わったらゲームリセットボタンを押すとまた最初からやれる。パソコン画面をさわってボタンが押せるのでイチコが直感的に操作しやすそう。

 

でコレを家族に発表したらすごいすごいともてはやされた一方、旦那から「つぎのばんごうボタン押してから番号出るまでにちょっとタメがほしい」という追加要望があった。確かに処理が早すぎて、ボタン押すのと同時に番号が出ちゃってたので改修することにした。

 

本当は音源を流したり動画流したりしてみたかったのだが、ネットに落ちてるサンプルコードを試してみても再生されないものだから諦めた。なんか設定がいるのかPCのスペックなのか…謎。

 

で一度はwait構文みたいのを使って、番号欄に「どるどるどるどる〜」という文字を一度出して3秒停止してから番号を発表、という仕様にしてみたんだが、音がほしいよね音が、となった。

 

で調べてみるとBeep音というのがエクセル内部に登録されているらしく、その周波数とか何秒鳴らすかとかもコードで制御できるらしい。

↓はyahoo知恵袋で拾ったサンプルコード。

Declare Function ApiBeep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long ' dwFreq Hz単位の周波数 ' dwDuration ミリ秒単位の鳴動時間

使うとき↓

Call ApiBeep( 500, 2000) ' 500Hzを2秒

これでやってみたら、番号欄に「どるどるどるどる〜」と表示されてる間、ビープ音がミーーーと鳴って、番号表示と同時にピコーン!というビープ音が鳴るようにしてみた。ちなみにピコーン!の音を鳴らすには「Beep」という行を入れるだけ。簡単だ。

 

で最終的にこうなった。背後で子どもらが見てるYouTubeの音がうるさいけど…

自己満足だけど楽しかった。