エクセルInvaderで遊ぶ
[Home]

 エクセルInvaderで遊ぶ

 最初に

Space Invaders(通称インベーダー)とは何かと言えば、下の画面を見れば一目瞭然でしょう。とは言っても、最近の若い人は全く知らない方も多くなったと思いますが。
一言で言えば、それは1978年からタイトーが発売したコンピュータゲームで、正に日本中に空前絶後の大ブームを巻き起こしました。
なにしろ、ゲームで得られた100円硬貨の集金袋を回収するのにライトバンではとうてい間に合わず、4トントラックで回収を行っていたのです。
驚いた事に、回収する4トントラックの板バネサスペンションが、100円玉の重みに耐えきれず、曲がってしまう事故が頻発していたと言われております。

Excel Invader 改造版


上記の画像は、私が Excelでインベーダーゲームを作ってみた のソースファイルを改造して、BGMの再生とフルスクリーン化を行った(動作中の)画像を掲載したものです。
ちなみに、エクセルで作成されたインベーダーゲームは、私が知っている限りでも数種類あり、著作権を主張している方は(多分ですが)居りません。
少なくともエクセルで作成されたインベーダーゲームに関しては、誰でもが自由に作成、改造が出来る状況にあります。(私はそのように認識しております)

実は、このソフトは エクセル競馬予想 馬ちゃん」のサポートページ で(長年)御提供しておりました。 ただ、提供しているサイトは元々競馬関係のサイトですので、場にそぐわない面もあり、いずれは引っ越しをする予定でおりました。今回、レンタルサーバーを借りましたので、良い機会だろうと思い、引っ越しを進めております。
前のサイトのインベーダーゲームの紹介は削除するつもりでしたが、ダウンロードされる方が多かったので、完成度の高い C言語のInvader と入れ替えさせていただきました。

前置きはこのぐらいにして、まずは Invader.zip をダウンロードして解凍してください。
解凍したフォルダにある Book1.xls をダブルクリックして起動し、上記のような画面になればゲームを行う環境は出来ております。(以降の解説は読む必要がありません)
まさか、「自分は代替エクセルしかもっていないのですがどうしたら動きますか」とかの冗談はやめてください。
代替エクセルでは動かない理由が分からないようであれば、エクセルでゲームをするのは当分無理でしょう。(動く代替エクセルがあったら教えて欲しいぐらいです)

それから、私の作成(改造)したエクセルのインベーダーゲームは、画面比率(アスペクト比)が、近年主流の16:9 (ワイド)なら(反射神経のかなり鈍い方でも)楽勝できますが、4:3 (スタンダード)では99.99%勝てません。 大元のプログラムが、画面全体にインベーダーを表示させる仕様になっておりますので、フルスクリーン化すれば縦方向に存在するインベーダーの数が増えて、インベーダーを撃ち落としている間にインベーダーが下降してしまうからです。 インベーダーの数をアスペクト比で制御するべきかとは考えましたが、下手に改造しない方が(勝てないので悔しがる人が出て)面白いと思ってそのままにしました。 ほぼ全てのゲームは人間に有利(もしくは対等)になるように作成されておりますが、人間がインベーダーに優っている根拠はありませんので、絶対に勝てないゲームが存在しても良いのではないかと思っております。


 エクセルでゲームを行う環境を構築する

エクセルに限りませんが、ゲームを行うにはそれなりの環境が必要です。一般的にはゲームはDirectXで動作させます。
DirectX(ダイレクトエックス)には様々なバージョンが存在しておりますが、ほとんどの環境で動作するバージョンは7と8です。
理由は、かなり古いグラフィックボードでも、DirectXの7と8には対応しているからです。 通常はDirectX 8をインストールするだけで良いのですが、古いゲームだとDirectX 7でしか動きませんので、両方をインストールしておいた方が無難です。 本来は、インストールなどしなくても動くようにすべきなのですが、Vista以降のOSでは、DirectX 7と8はインストールしないと使えない仕様になっています。 技術革新と販売戦略上の理由からと思われます。

初心者にとって最悪なのは、DirectX のインストールがとてつもなく面倒なことです。
私はコンピュータに関しては、人並以上の知識はあると思っているのですが、それでも DirectX をインストールするのは解説書でも見なければ無理です。
パソコンに触れる事の少ない初心者には、解説書を見てもちんぷんかんぷんでしょう。サイトには DirectX のインストールに失敗するのでどうしたらよいかの質問が多いようです。


 DirectXのインストール方法

面倒な事の第一点は、DirectX の入手方法です。DirectX 7 にしろDirectX 8 にしろ入手先が不明です。
DirectX 7 の本体は dx7vb.dll と言うファイル名のダイナミックリンクライブラリです。
DirectX 8 の本体は dx8vb.dll と言うファイル名のダイナミックリンクライブラリです。
ダイナミックリンクライブラリとは何かについては暇な時に調べていただくとして、この2つのファイル(少なくともdx8vb.dllは)をインストールする必要があります。
インストールと言っても、単にコピーするだけなのですが、単にコピーしただけでは動かないのも初心者には厄介です。

まず入手先ですが、マイクロソフトのサイトが良いに決まっておりますが、閉鎖されていたり、場所が分かり難かったりします。
私が検索した範囲では、 影倉庫(http://shadowwarehouse.tuzikaze.com/MyProg/vista.htm)様の解説ではWindows Xpをお持ちなら、普通は C:\WINDOWS\system32 に dx8vb.dll が入っておりますので、それをコピーするのが早くて安全だそうです。確かにそうですよね。
コピー先は、OSが32bitなら同じく C:\WINDOWS\system32 のフォルダ内に、OSが64bitなら、C:\WINDOWS\SysWOW64 にコピーします。
64bit機の場合は両方のファルダがありますが、両方に入れても害はない筈です。 但し、前述したようにコピーしただけでは動かないと思いますので、以降に解説の操作が必要です。

Windows Xp などはとっくの昔に処分してしまったと言う方は、Googleなどでファイル名で検索すればいくらでも見つかります。
但し、Googleの上位で検索したサイトにはそうそうウィルスは潜んでいないでしょうが、会社組織なら絶対ダウンロード禁止ですね。
一応、以下にダウンロードできたと言うサイトを記載しておきますが、他サイトの引用ですので、当然ながら自己責任で行動してください。
世の中には、「お前の言う通りにしたらパソコンが使えなくなってしまった。どう責任を取ってくれるのだ。」と言う人が、100人に一人や二人は居りますので怖いです。

【DLLの取り出し】
日本語ページでは最新の2009/03版(93MB)
DLLの入ってる最終の2010/02版(英語ページ、104MB)
ダウンロードしたファイルを実行するとDirectXのインストーラの展開場所を聞かれるので、分かりやすい所を指定します。
(DirectX自体はインストールされません。インストールしたい場合は、展開した場所にある DXSETUP.exeを実行してください。)
インストーラを展開した場所にある dxnt.cab を開くとお目当てのDLLがあるので、別の分かりやすいフォルダに置きます。

あっさりと、 dxnt.cab を開くなどとと記載されておりますが、これすらも出来ない初心者も多いでしょう。私も幼稚園児の対応は出来ませんので、無理な方はお帰りください。
このような記載をすると初心者蔑視だとか、人間としての心に欠けているなどと批判する人がおりますが、私はパソコンの操作を、分不相応なレベルの人が行うと、本当に壊してしまう場合が多い事を警戒しているだけです。(私が幼稚園の教師なら、我慢して教えます)


 DirectXインストールの最後の仕上げ

DLLもコピーするだけで使えるようになる場合が多いので、初心者とかせっかちな人はコピーして動かないと騒ぎ立てる人が出てきます。
要するに、こんな方は知恵遅れの人(思考能力が低く、行動が軽率)だと言って良いのですが、そんな人でも数が多いと普通の人扱いになります。しかも、やたら威張ります。
前述の影倉庫様のサイトにも記載されておりますが、以下のようにします。

(1)管理者権限(右クリック「管理者として実行」)でコマンドプロンプトを起動します。(管理者権限が無いと、Windowsエラー 0x80070005 が出るようです)
(2)コマンドプロンプトの画面に、『 regsvr32 c:\windows\system32\dx8vb.dll 』と入力してエンターキーを押します。(まさか『 』も含む人は居ないと思いますが)
ほんの少しだけ待って、下記画像のような成功した旨のメッセージが出れば、これでインストールは完了です。

regsvr1画像

上記の方法はOSが32bitの場合ですが、OSが64bitなら、C:\WINDOWS\SysWOW64 のフォルダになります。
それから、このような操作をする場合のセオリーは、dx8vb.dll をアンインストールしてからインストールを行います。(念を入れればの話です)
つまり、コマンドプロンプトの画面に、『 regsvr32 /u c:\windows\system32\dx8vb.dll 』と /u を入れて一旦以前の dx8vb.dll の機能を削除しておきます。
(仮に削除するdx8vb.dllが存在していなくても、エラーは出なかったと思います)
以上、私なりに努力して(初心者の方にも御理解出来る)御説明をしたつもりです。


 Windows 10 では動作しないのか

最近になって気づいたのですが、、Office2019 の64bit版 では動作しない(動作させる事が出来ない)ようです。 私がメインに使用しているOSは、Windows 7 であるのも影響して気づくのが遅れたのですが、Windows 10(64bit)にExcel2019(64bit版)の搭載マシンで、このインベーダーを動作させようと思って、色々弄ったのですが、無理のようです。
使用するエクセルが、Office2019 の64bit版なので、エクセルのコードを64bit対応に書き換えて動作させたのですが、エクセルがフルスクリーンになって左下にENEMYとSCOREは表示され、動作しているのは分かるのですが、画面には一切インベーダーが表示されません。(動作しているのが分かるのはESCキーで終了出来るため)

勿論、ソフトがDirectX 8対応なので、DirectX関係の動作は切っており、サウンド機能と画像の表示がされないのは当然なのですが、どうやらWindows 10には、DirectX 8はインストール出来ないのではないかと思います。 マイクロソフトのアナウンスでは、Windows 10はDirectX 12であり、DirectX 12はWindows 10にしかインストール出来ないと言う販売戦略を行っています。 マイクロソフトもそれでは不都合が生じると考えたのか、DirectX 11は標準でも搭載されており、DirectX 9は、 別途ソフト(DirectX エンド ユーザー ランタイム )をインストールすれば動作するようになるそうです。(何もしなくても、DirectX 9で作成されたソフトは動作するようですが)

動作確認しているのがOffice2019 の64bit版なのが、そもそも問題なのですが、あいにく私はWindows 10にはOffice2019 の64bit版しかインストールしておりませんので、32bit版なら動くのかは分かりません。 Windows 8.1(64bit)にOffice 2010の32bit版をインストールている環境では、DirectX 8が正常にインストール出来て、動作するのも確認しておりますので、Windows 10(64bit)でも、Officeが32bit版なら動くのかもしれません。
尚、エクセルのソフトを、DirectX 9以降に対応できるようにすれば良いのではないかとは誰でも考えますが、これが難しい(無理?)ようで、そのような例は見た事がありません。


 Windows 10 の最新バージョンでも動作しました

Windows 10 の最新バージョンは Ver1909 のようですが、2019年10月24日現在では一般公開されていないようです。
私が所有しているのは、その前のVer1903 なのですが、バージョンアップしても動作は変わらないと思っています。 そのWindows 10 (Ver 1903)に Office 2010 (32bit版)をインストールして、エクセルのインベーダーゲーム(私が改造したゲーム)が動作するのかどうか試した所、全く問題なく動作する事を確認しました。

つまり、Windows 10 (Ver 1903)64bit に、DirectX 8 はインストールが可能なようです。
私の場合は、Windows 7(32bit)の C:\Windows\System32 のファルダにある dx8vb.dll を、Windows 10 (Ver 1903)64bit の C:\Windows\SysWOW64 のフォルダにコピーして、その後にコマンドプロンプトを管理者権限(右クリック「管理者として実行」)で立ち上げてから、regsvr32 c:\windows\syswow64\dx8vb.dllと入力しただけす。

正確に言うと、コマンドプロンプトで CD コマンドで SysWOW64 のフォルダに行ってから、regsvr32 dx8vb.dll と入力したのですが、(当然ですが)変わらないでしょう。
その時に、「成功した」旨の表示がでますから、DirectX 8 がインストール出来たのは分かります。
Windows 10 では、DirectX 8 は動作しない(インストール出来ない)などと解説しているサイトは、何なのだと声を大にして言いたいです。
念のために申し上げますが、エクセルの 64bit版では、どうあがいても無理のようです。 私は貴重な時間を無駄にしてしまいました。(絶対無理であるとまでは言いませんが)

以下の画像が 2019年11月13日に Windows 10 (Ver 1909)64bit で動作させた時の起動画面です。(画像を縮小して表示させております)
Excel Invader 画面4


アスペクト比が1280×1024(4:3)なので、到底勝てないように思えますが、4、5回トライしたら勝てました。その時の途中の画像です。(右端部分の画像はカットしております)
要は、底辺のインベーダーを4,5段破壊できれば、勝てると言う事です。(私の環境だけかも知れませんが、攻撃を避けながら攻撃するのは、見た目ほど難しくはありません)
Excel Invader 画面5

画像のキャピュチャーがぶれたような感じになっておりますが、この状態になれば、誰でも勝てる状況なのは明白でしょう。(すんなりと2回勝てましたので、偶然ではありません)
前に、「アスペクト比が 4:3 (スタンダード)では99.99%勝てません」などと書いてしまいましたが、まったくの勘違いでした。 難しいのは起動時の段階だけです。
ただ、(起動時だけ)やたら神経を使う割には勝利感(達成感)がありませんので、何回もやりたいとは思いません。 このソフトは、ゲーム構成に難があると思います。
やはり、オリジナルのようにインベーダーの数が減ってきたら、インベーダーの動作がスピードアップするような方式にすべきでしょう。

[Home]