4
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?

Excelで何の役にも立たないアプリを作った話

Posted at

はじめに

Excelで、入力した文章をモールス信号に変換して音を鳴らすアプリを作りました。

先に言っておきます。

便利になりません

業務効率は上がりません

使い道はありません

それでも、作っていてとても楽しかったので満足しています。

何をするアプリか

このExcel VBAアプリがやることは、ただ一つです。

日本語・英語・数字・記号を入力

モールス信号に変換

そのまま音で鳴らす

UIはありません。ログも残りません。
Excelが突然、無線機みたいな音を出します。以上です。

無駄にちゃんとしているところ

何の役にも立たないくせに、中身は意外と真面目です。

日本語(ひらがな)対応

英語(A–Z)対応

数字・記号対応

モールス信号の正しい間隔

1文字ごとの「ピコーン」音を排除

連続音のみでモールスを再生

目的だけが完全にズレています。

なぜVBAでやったのか(特に理由はない)

正直に言うと、

Excelでやる必要はない

VBAである必然性もない

他の言語の方が楽

それでもVBAでやりました。

Excelでやると、

音が鳴るだけで違和感がある

周囲が一瞬ざわつく

自分でも「何やってるんだろう」と思う

この感覚が、最高です。

実装の一部(肝だけ)

全部載せると記事が壊れるので、雰囲気が分かる部分だけ載せます。

モールス辞書(抜粋)

Dim Morse As Object
Set Morse = CreateObject("Scripting.Dictionary")

' 英字
Morse.Add "A", ".-"
Morse.Add "B", "-..."
Morse.Add "C", "-.-."

' 数字
Morse.Add "1", ".----"
Morse.Add "2", "..---"

' 日本語(ひらがな)
Morse.Add "あ", ".-"
Morse.Add "い", ".."
Morse.Add "う", "..-"

文字をモールスに変換

Function ConvertToMorse(txt As String) As String
    Dim i As Long, c As String, result As String

    For i = 1 To Len(txt)
        c = Mid(txt, i, 1)
        If c = " " Then
            result = result & " / "
        ElseIf Morse.Exists(UCase(c)) Then
            result = result & Morse(UCase(c)) & " "
        ElseIf Morse.Exists(c) Then
            result = result & Morse(c) & " "
        End If
    Next

    ConvertToMorse = result
End Function

モールス音を鳴らす(ピコーン無し)

BeepSound 800, 150   ' ・
BeepSound 800, 450   ' −

※ kernel32.dll の Beep を使用し、Excel標準の「ピコーン」音は排除しています。

クソアプリを作って分かったこと

こういう無駄なものを作ると、意外と学びがあります。

非同期処理の感覚が身につく

タイミング制御をちゃんと考える

UIがなくてもアプリは成立する

「何が本質か」が見える

つまり、

役に立たないものは、学習効率が高い

という、よく分からない結論に至ります。

まとめ

モールス信号を鳴らすExcelアプリを作った

何の役にも立たない

でも無駄にちゃんとしている

Excelが無線機になった

それで十分です。

もしこの記事を読んで、

「意味はないけど、ちょっと作ってみたい」

「自分も無駄なもの作りたい」

と思ったなら、たぶんそれは正解です。

▼こんなのも作ってるので読んで行ってもらえるとうれしいです
Excel VBAで進捗バーを実装する方法

4
1
1

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
4
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?