いま読まれている記事

ExcelでVBAを使わずに『ドラゴンクエストIII』を再現した猛者が話題に。関数と機能を駆使して擬似的にプログラムを実現

article-thumbnail-201110h

 11月初め、Microsoftの表計算ソフト「Excel」でマクロ言語「VBA」(Visual Basic for Applications)を使わず『ドラゴンクエストIII そして伝説へ』(以下、ドラクエ3)の序盤を再現した猛者が現れたことが話題となった。

 VBAを使わずに『ドラクエ3』を再現したのは、普段の業務でExcelを使う仕事をしているブロガーのパパセンセイ氏だ。氏が公開した動画「ExcelでVBAを使わないでドラクエ3を再現してみた」では、ファミコン版『ドラクエ3』の序盤、最初の街「アリアハン」からフィールドを移動して「スライム」などのモンスターと遭遇、戦闘シーンまでもが見事に再現されていることを確認できる。

 Excelでは、付属しているVBAを使ってプログラミングができるので、オセロやブロック崩しゲーム、『スーパーマリオ』『ロックマン』を制作可能だ。しかしパパセンセイ氏はこのVBAを頼らずに、Excelの関数と機能だけでセル上で擬似的なプログラムを再現することへ成功した。

ExcelでVBAを使わずに『ドラゴンクエストIII』を再現した猛者が話題に。関数と機能を駆使して擬似的にプログラムを実現_001
(画像はパパセンセイ365「ExcelでVBAを使わないでドラクエ3を再現する」より)
ExcelでVBAを使わずに『ドラゴンクエストIII』を再現した猛者が話題に。関数と機能を駆使して擬似的にプログラムを実現_002
(画像はパパセンセイ365「ExcelでVBAを使わないでドラクエ3を再現する」より)
ExcelでVBAを使わずに『ドラゴンクエストIII』を再現した猛者が話題に。関数と機能を駆使して擬似的にプログラムを実現_003
(画像はパパセンセイ365「ExcelでVBAを使わないでドラクエ3を再現する」より)

 具体的にはオプションで反復計算を有効にして、循環参照を使ったという。循環参照は、セル参照がループ(循環)している状態のことで、普段はエラーメッセージが表示されるが、あえてそれを利用することによってプログラムカウンタを実現している。
 またとくに難問だったのがアニメーションの再現とのことで、これはキーボードのF9キーを押しっぱなしにして再計算し続けることで突破したとのこと。なお地図やモンスターなどの画像は、パパセンセイ氏がExcelで1から作ったものを使用している。

 パパセンセイ氏いわく「セル上でも疑似的なプログラミングが可能だということは、ほとんどのゲームが作れる」とのことだが、課題としてはVBAを使わずに音を鳴らす方法がいまだにわからないとのこと。

 これまでパパセンセイ氏は『ドラクエ3』以外にも、VBAを使わずにExcelで「スライドパズル」『マインスイーパー』を作っており、次はVBAを使わない『テトリス』に挑戦するという。はたして次はどのような仕様になるのか、パパセンセイ氏の動向に注目といえそうだ。

ライター/福山幸司

ライター
ExcelでVBAを使わずに『ドラゴンクエストIII』を再現した猛者が話題に。関数と機能を駆使して擬似的にプログラムを実現_004
福山幸司
85年生まれ。大阪芸術大学映像学科で映画史を学ぶ。幼少期に『ドラゴンクエストV』に衝撃を受けて、ストーリーメディアとしてのゲームに興味を持つ。その後アドベンチャーゲームに熱中し、『この世の果てで恋を唄う少女YU-NO』がオールタイムベスト。最近ではアドベンチャーゲームの歴史を掘り下げること、映画論とビデオゲームを繋ぐことが使命なのでは、と思い始めてる今日この頃。
Twitter:@fukuyaman

本ページはアフィリエイトプログラムによる収益を得ている場合がございます

Amazon売上ランキング

集計期間:2024年4月26日15時~2024年4月26日16時

新着記事

新着記事

ピックアップ

連載・特集一覧

カテゴリ

その他

若ゲのいたり

カテゴリーピックアップ