2021/02/17(水)07:00
エクセルで画像をデータベースから呼び出す方法 その2
昨日の続きです。
エクセルで画像をデータベースから呼び出す方法 その2!
実は、昨日のやり方だと、僕の以前作ったエクセルゲームが、なかなかうまく動かなかったのです。
僕の作ったゲームは、エクセルのデータファイルとゲームファイルが別になっています。
これは、なかなか画期的。(笑)
他のファイルのデータを参照しに行くので、その分複雑になります。
で、野球ゲームなので先攻・後攻で参照するチームが変わるなど、どのチームの誰を表示させるのかというのが、番号だとこんがらがってきて、頭から煙が出てきました。プログラムがうまく動作しなくて「ウキーー」とサルになって暴れ出しました。
複雑なことを処理するにはVBAというプログラム上でコードを記述するしかないのですが、VBA上だとR1C1参照形式で書かないといけないので、それもさらに混乱の原因に。
そういうわけで、精神的安定を取り戻すため、別の方法を探ることにしました。
探してみたら、わりとすぐに見つかりました。
どんなことにでも別の方法というものは、あるものです。
それが、こちら!
▼数式を使って「画像」を表示させる(その2)
(ブログ「事務作業の省力化や資料作成に役立つ、Excelの使い方を紹介」様)
結論としては、こちらを採用して、うまくいきました!
VBAをさわらずに実現できました。
セルに名前を付けることで、その名前がどこにあろうと参照しに行くことができます。
うーむ、便利!
図のリンク貼り付けについては、こちらの基礎解説も参考にさせていただきました。
▼図のリンク貼り付け
(「なんだ!カンタン!Excel塾」様)
画像以外でも、複数データの入った範囲を「図として」参照するということができるので、応用範囲は広そうです。というか、なんでこんなことができるんだエクセル。すごすぎる!
ちなみに、画像を置いたセルに名前をつけた後、「リンクされた図の貼り付け」をするのは、右クリックメニューからもできました。
ただ、別のエクセルファイル間では同じ名前が共有されないようだったので、キャラクター画像のデータベースは、チームデータファイル上ではなく、ゲームファイル上に持っていきました。
また、セルに付ける名前にはルールがあって、記号がことごとく「_」に変換されてしまいました。
打者と投手の画像の向きを分けるために、選手名の始めに打者は「B:」、投手は「P:」と表示させたかったのですが、ほかの記号に変えてもうまくいかないので、ここでまた「ムキーーー」となってしまいました。調べたら割と早く「記号はアンダーバーしか使えない」ことが分かったのですけどね。(^^;)
最終的に、打者は「B_」、投手は「P_」をつけて表示させることで、やりたかったことは実装できました。
ちなみに、あるセルの文字列に他の文字列をガッチャンコする数式は、
="B_"&A1(セルの番地)
のようになります。
こういうのは、なにげにたまに使うワザですね。
最後に、上のリンク先サイト様でちゃんと解説していただいているのですが、
「参照が正しくありません」
と言われるエラーが頻発してずいぶん困らされました。
INDIRECT関数の参照先が空白だとエラーになるので、空白を避けなくてはいけません。
エラーになるとなかなか抜けられなくてアリジゴクみたいでした。
Esc(エスケープ)キーを押して脱出できましたが、それに気づくまで10分くらいかかりました。
※※※サンプルチームデータ製作協力者募集※※※
エクセル野球シミュレーションゲーム「脳内野球」は、
現在バージョン2.0に向けて改善作業中です。
このゲームに登場するチームデータを作ってくださる方を募集します。
メールで連絡いただければ、作成途中のプログラムを送付します。
キャラクターの名前やワザの名前、能力値、横向きの画像を入れて
ご返却ください。(画像は自分で描くかフリー画像を利用ください)
作成自体は、非常にカンタンです。技術はいりません。
締め切りは2月22日です。
面白いアイデアはバージョン2.0の初期チームに入れさせていただきます。
(ただし、他人の著作権や肖像権に引っかかるものは採用できません。
実在の野球選手はNGなので、歴史上の人物や動物、植物、鉱物、国などの擬人化でお願いします。(個人的には、ネコのチームを作ってほしいにゃん)
メール:nikka★joy.email.ne.jp(★を@に変えてください。)
件名を「脳内野球バージョン2に協力します」にしてください。
▼エクセル野球シミュレーション「脳内野球」のホームページ