こんにちは!するどいプランナーです!
今日は予定を変更して簡単なVBAの使用例を説明していこうかと思います。
プランナーの資料作成が楽になるようなものとして
前編:マップ上アイコンの表示をON/OFFする
後編:マップ上にアイコンからの範囲を描画する
の2回に分けて説明していきます。
どちらも「if文とfor文が読める人なら改修して使える」くらいの難易度かなと思います。エクセルファイル上でVBAが使用できる状態にする方法は記事内で説明しません。
完成イメージ
- マップ画像上に敵と宝箱の配置情報を表示する
- 種類ごとにまとめて表示のON/OFFを切り替える
というものを作っていきます。
方法としては、地図画像上にエクセル機能で図形を描画し、図形に設定したテキストで図形を判別して各種制御を行います。
手順①地図上にアイコンを配置する
地図上に敵と宝箱のアイコンを配置していきます。
今回はアイコン位置はデータから読み込むのではなく、手作業で配置していきます。
表示の切り替えは「図形のテキスト」で行うので、敵には「#敵」、宝箱には「#宝箱」と記載した図形を使用することにしましょう。色や形状は自由です。
このままだとサイズがマップより大きすぎるので調整し、マップ上に配置していきます。文字が見えないサイズになっても問題ありません。
手順②VBAマクロを書く
今回は3つの関数を作成します。
(1)指定のテキストを含む図形の表示ON/OFFを切り替える
(2)(1)を使用して敵の表示をON/OFFする
(3)(1)を使用して宝箱の表示をON/OFFする
'(1)指定テキストを含む表示のON/OFFを切り替え
Sub 図形の表示切替(target As String)
'全ての図形をループ
For Each a In ActiveSheet.Shapes
'図形がオートシェイプの場合
If a.Type = 1 Then
'テキストに「targetが含まれているかを判定
If InStr(a.TextFrame.Characters.Text, target) > 0 Then
'表示を切り替え
a.Visible = Not False
End If
End If
Next
End Sub
' (2)敵の表示を切り替え
Sub 表示切替_敵()
図形の表示切替 "敵"
End Sub
' (3)宝箱の表示を切り替え
Sub 表示切替_宝箱()
図形の表示切替 "宝箱"
End Sub
手順③コントロールパネルを作る
ボタンでマクロを呼び出せるようにしましょう。
また、パネル部分にもアイコンを配置しておけば、いまそのアイコンが表示中かどうかを確認することができます。
前編はここまで。
後編では「マップ上にアイコンからの範囲を描画する」マクロを作成していきます。