昔懐かし特撮番組のイントロで逆回転でタイトルが現れる、というのがありました。あれがずーと頭にひっかかっていたので、こんなのを作ってみました。
手持ちの画像(PNG/JPG)を読み込むと、Excelの 40×40セル(1,600マス)のドット絵 に自動変換され、ボタン一つで 4つの渦(クアッド・スワール)が巻き起こってダイナミックに形を崩すことができます。さらに「逆回転」で綺麗に元の絵へ復元 させることもできます。
「バラバラの模様から一気に元の絵が浮き出てくる復元動画」 をExcelだけで簡単に作成・撮影できるので、SNS(TikTok、YouTube Shorts、Instagram Reels)に話題作を投稿できるかもしれませんね。
プログラムの作り自体は標準モジュールとクラスモジュールに分けてスッキリ整理しています。以下に要所を解説しますので、ご自身で試してみたい方はダウンロードして動かしてみてください。
プログラムの仕組みについて
このツールでは、Excelのセル背景色(Interior.Color)を1マスずつ塗り替えることで、コマ送りのアニメーションを表現しています。
どんな画像も一瞬で40×40のドット絵に(WIA画像解析)
画像ファイルを選択すると、Windows標準の画像処理エンジン(WIA)が裏で働き、色や形を潰さずに 40×40ピクセル へリサイズします。その1ピクセルごとのRGB(赤・緑・青)データを解析し、Excelセルの色として再現しています。
上下左右の4点「クアッド・スワール」による液化変形
1つの渦だけだと円形の画像(アイコンやロゴ)を回したときに変化が伝わりにくいため、画面の上下左右の4箇所に独立した渦を発生させています。
「上と右は時計回り」「下と左は反時計回り」と交差するように引っ張り合うことで、絵がまるで液体のようになってグニャグニャと崩れていく効果を出しました。
アニメーションを司る「スワールクラス(clsQuadSwirl)」
アニメーションの計算は専用のクラスモジュールに任せています。 「全体の進捗率(0.0〜1.0)」を渡すだけで、現在のコマに応じたセルの回転・色置き換えをミリ秒単位で一括計算・描画してくれます。
ダウンロードと実行
「自分のPCで手持ちの画像を動かしてみたい」という方は、以下のファイルをダウンロードして試してみてください。
無料版ダウンロード
swirl_dot_animator_free.zip
ダウンロードしたZIPファイルを解凍すると、swirl_dot_animator_free.xlsm というマクロ付きExcelファイルが現れます。
【動作環境とセキュリティ設定について】
本ツールは Microsoft Excel (Windows版 / 64ビット環境推奨) にて動作確認を行っています。
インターネットからダウンロードしたマクロ付きファイルは、Excelのセキュリティ機能により一時的にマクロの実行がブロックされる場合があります。起動しない場合は以下の手順を行ってください。
- ダウンロードした s
wirl_dot_animator_free.xlsmを右クリック > プロパティを開く。 - 全般タブの一番下にある 「許可する (Unblock)」 にチェックを入れて OK を押す。
- ファイルを開き、黄色の警告バーが出た場合は 「コンテンツの有効化」 をクリックする。
使い方と画面操作
ファイルを開くと、下図のような操作画面が表示されます。

操作手順
- [ 1. 画像ファイルを選択 ] ボタンをクリック
お好きなイラストやロゴ画像(PNG/JPG)を選びます。自動的に 40×40 セルにドット絵として読み込まれます。- ※縦横 500px 以上の高解像度画像を選ぶと、「線が潰れる可能性があります」という確認メッセージが表示されます。シンプルでわかりやすいイラストがおすすめです。
- [ 2. 正回転(絵を崩す) ] ボタン
4つの渦が巻き起こり、ドット絵がグニャグニャと崩れていきます。 - [ 3. 逆回転(絵を復元) ] ボタン ★動画撮影用に最適
崩れた渦巻き模様から、徐々に元のドット絵へと綺麗に巻き戻り復元します!画面録画ソフト(Windows標準の Win+Alt+R、Snipping Tool など)を起動してからこのボタンを押すのがおすすめです。 - [ 4. 一連再生 ] ボタン
「正回転 ➔ 2秒静止 ➔ 逆回転」を自動で通し実行します。
プログラムの解説(開発裏話)
ここからはプログラム内部の詳しい解説です。興味のある方やVBAのコードを勉強中の方はご覧ください。
渦の移動先を逆算する「逆引きマッピング」
ドット絵を変形させるとき、「今のセルの色をどこへ動かすか」ではなく、「回転後のこのセルには、元画像のどの位置の色を持ってくるか」という逆引き(ソース位置計算)を行っています。
' === クラスモジュール (clsQuadSwirl) 内の回転演算抜粋 ===
' 渦の影響範囲内(SWIRL_RADIUS内)であれば、回転角度を逆算
twistAngle = currentMaxTwist * factor * direction
currentAngle = Atan2(r - centerR, c - centerC)
srcAngle = currentAngle - twistAngle
' 元画像の座標(srcX, srcY)を割り出してセルの色に反映
srcX = Round(centerC + targetD * Cos(srcAngle))
srcY = Round(centerR + targetD * Sin(srcAngle))
ws.Cells(r, c).Interior.Color = m_origColors(srcY, srcX)★ポイント!
順方向の移動で計算すると、回転によって「色が入らない隙間(穴あきセル)」が発生してしまうことがあります。逆引き計算を採用することで、どんなに強く渦を巻いても隙間なく綺麗なドット描画が維持できるのが大きな工夫です。
フル機能版開発中!
無料版をお試しいただき、「もっと渦の位置や個数を自由に調整したい」「自分のキャラクターの目に合わせて渦を巻かせたい」という方向けに、カスタマイズが自由自在な フル機能版を開発中です。機能の差は以下のようにするつもりです。
| 機能 | 無料版(配布中) | フル機能版(有料予定) |
| 手持ち画像のドット絵変換 | ○ (40×40固定) | ○ |
| 正回転 / 逆回転(復元) | ○ | ○ |
| スワールの個数指定 | 4個固定 | 1〜4個で自由設定 |
| スワール位置(X・Y座標) | 固定 | シート上で数値指定可能 |
| 回転数・影響半径の可変調整 | 固定 | パラメータで自由調整 |
| 各渦の回転方向(時計/反時計) | 固定 | 個別に切り替え可能 |
完成時期は2026年10月末を目指しています。出来たらまたご案内いたします~。
コメント