Excelでゲームを作る時のヒント(その2)
Excelでゲームを作る時のヒント(その1)の続きです(Excel2010ベース)。
★どんなゲームが作れるのか? 最下段をご参照下さい。
★Excel2013/16/19/21では動作しない場合があります。
6.図形や図の中にセルの内容を貼り付ける
セルの内容を図形や図の中に貼り付けることが出来ます。①セルの内容を図形に貼り付ける。
[図形を選択]=>[数式バーに[=]を入力]=>[当該セルをクリックして選択]
・図形を拡大/縮小してもサイズは変わりません。
・単一セルの内容のみ貼り付けできます。
②セルをコピーし図として貼り付ける(その1)。
[セルをコピー]=>[貼り付け▼]=>[リンクされた図]
③セルをコピーし図として貼り付ける(その2)
[セルを選択]=>[カメラボタン(注)]をクリック=>[シート上でドラッグ]
・②,③はほぼおなじ結果が得られます。
・セルの内容と図形に貼り付けられたデータはリンクします(書式もリンクします)。
・図形を拡大/縮小するとサイズも変化します。
・複数セルの内容を貼り付けることが出来ます。
・セル上に配置された画像(写真やクリップアート)も貼り付けられます。
(注)[カメラボタン]は標準では設定されていないので、
[ファイル]=>[オプション]=>[リボンのユーザー設定]で[すべてのコマンド]の中から[カメラ]を追加して下さい。
②,③を使うと、セルの内容若しくはセル上に配置した画像などを拡大/縮小表示できます。
[エクセルで顕微鏡]はこの仕掛を使っています。
7.文字や記号、図を動いているように見せる
ボーリングのボールが動いているように見せたり、ピンが倒れたように見せるにはどうしたら良いのでしょうか?
①ボールを転がす
これは比較的単純で簡単です。
Excelでゲームを作る時のヒント(その1)で紹介した、循環参照、反復計算と関数[ =IF()]を使います。
1.循環参照と反復計算を使ってカウンターを作ります。
2.[ =IF()]関数を使って、カウンターが特定の値の範囲を取る時に、セルに[●]をセットします。
3.範囲を変えた[=IF()]を並べれば出来上がりです。
例えば、セル[A1]に[=A1+1]を入力し、最大反復回数を[1,000]程度にセットし、
セル[A2]に[=IF(0≦A1<100,"●",""]
セル[B2]に[=IF(100≦A1<200,"●",""]
:
セル[J2]に[=IF(900≦A1<1000,"●",""]
とすれば、「目の錯覚」と相まって[●]が右方向に動いているように見えます。
但し、 パソコンの性能によって、値の範囲と最大反復回数の設定は試行錯誤して決める必要があります。
②ピンを倒れたように見せる
これは結構面倒くさいです。簡単な例で説明します。
上↑の[電子サイコロ]は、乱数を発生させそれに対応する数字をサイコロの画像と共に表示させるものです。
乱数を発生させる毎にサイコロの画像が変化します。
ボーリングのピンの画像を立てたり倒したりするのも同じ考え方で出来ます。
[電子サイコロ]を例にとって説明します。
1.サイコロ1~6の画像の配置されたセル[B13]~[G13]を選択し名前を付けます。 ここでは[サイコロ]と付けました。
2.[数式]タブ=>[名前の管理]=>[新規作成]で[名前]をつけ、[参照範囲]を入力します。
(=Index(範囲,行番号,列番号)関数の列番号はサイコロの目(乱数)の入っているセルを指定します)
3.次にサイコロの画像の配置されているセルの何れかを選択コピーし、
[貼り付け▼]で[リンクされた図]として貼り付けます([カメラ]機能を使ってもよい)。
4.貼り付けた図を選択し、アドレスバーに[ = ]の後に2.で付けた[名前]を入力します。
(上の例では [=サイコロの表示])
5.以上で出来上がりです。
ボーリングの場合は、10ピン全てに、この設定をする必要があります。
また、乱数に応じてどのピンを倒すかのロジックも必要になるので話はもう少し複雑です。
意欲のある方は挑戦してみてください。
エクセルで作成したゲームの一例
YouTubeに公開していますのでご参照ください。
また、[Excelゲーム集(Excel Game Collection)]でも公開していますのでご参照ください。