1
0

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 MakerAdvent Calendar 2024

Day 25

Sequence Makerで🎅クリスマスをお祝いする🎄✨✨✨

Posted at

はじめに

Sequence MakerはExcelから測定器を制御可能にするアドインです。Sequence Makerのアドベントカレンダーも本日で最終日です。せっかくなのでSequence Makerでクリスマスを祝いたいと思います。なお、Sequence Makerについての詳細は以下の記事を参照ください。

お断り
本記事の内容はSequence Maker開発元の公式見解ではなく、あくまでも個人が趣味の範囲内で執筆しているものです。記事の内容について開発元へ問い合わせることはお控えください。ご質問・要望などは各記事のコメント欄へお願いいたします。

Merry Christmas✨

レコーディング 2024-12-24 231950 (4).gif

ネタばらし

なんと!Sequence Makerを使うと絵が描けてしまうんですね。。。
どうやっているかというと、V1.70で追加された仮想インターフェイスを使って、BMP画像の色データをコンマ区切りの応答で返すように定義し、区切り文字で分割でセルに入れた後、VBAでセルに色を付けています。順番に見ていきましょう。

1⃣イラストを用意する

仮想インターフェイスは100個まで応答を定義できる(正確には#1~#12まで使えば1200個まで定義できる)ので、縦100px以内の画像を用意します。今回はこちらの画像をお借りしました。ペイントなどでBMP画像にしておきます。

image.png
(アイコン屋めがぴこ/shell様)

2⃣BMP画像を色データのCSVに変換する

今回は「BMP2CSV」というフリーソフトを使用しました。BMP画像を選んで、「RGBをHEX形式で一つのファイルに保存する」を選び「CSVファイルを作成」でCSVファイルが出力されます。

image.png

こんな感じです。

image.png

3⃣仮想インターフェイスに登録する

先ほどのCSVを使って、Excelでこんな感じにデータを作ります。

image.png

画像の上から順番に1?や2?で応答を返す感じです。Excelでデータを作ったら、仮想インターフェイスの定義にエイヤとコピペします。

image.png

4⃣VBAのコードを作る

ChatGPTさんにお願いして作ってもらいました。これでセルに「#123456」のようにカラーコードを入力すると、セルの色が変わるようになります。

' セルに変更があったときに呼ばれるイベント
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cell As Range
    Dim InputValue As Variant
    Dim ColorCode As String
    Dim Red As Long, Green As Long, Blue As Long
    Dim ColorValue As Long

    Application.EnableEvents = False

    For Each ChangedCell In Target

        ' 値を取得
        InputValue = ChangedCell.Value
        
        ' 文字列の場合
        ColorCode = Trim(InputValue)
        ' 16進数のRGB形式か確認
        If Len(ColorCode) = 7 And ColorCode Like "[#][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]" Then

            ' 16進数カラーコードを分解
            Red = CLng("&H" & Mid(ColorCode, 2, 2))
            Green = CLng("&H" & Mid(ColorCode, 4, 2))
            Blue = CLng("&H" & Mid(ColorCode, 6, 2))
            ' 16進数のRGBカラーコードを生成(BGR順)
            ColorValue = Blue * 65536 + Green * 256 + Red

            ' 背景色を設定
            ChangedCell.Interior.Color = ColorValue
        
        End If

    Next ChangedCell

    Application.EnableEvents = True

End Sub

5⃣シーケンスを作る

Excel上にシーケンスを作成します。コンマで区切るので、先頭に#SPLIT(ON)を入れています。それ以降は仮想インターフェイスで定義したコマンドを羅列します。

image.png

6⃣実行

「コマンド送受信」ボタンを押して実行します。

image.png

こんな感じで上から順番に画像ができあがっていきます。

まとめ

というわけで、なんとか無事にSequence Makerのアドベントカレンダーカレンダーを全て埋めることができました。最後はクリスマスっぽい感じで締めくくる事ができて良かったです。
さて、そろそろ🎅サンタさんが来る時間のようなので、これで終わりにしたいと思います。

(・・・いや、私が今から🎅になるんだが)

メリークリスマス🎄✨✨✨

image.png

https://www.noradsanta.org/ja/map より引用)

1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?