« 値段と生産量 | トップページ | 柳田格之進(1) »

2013年1月19日 (土)

地図塗り分けのVBA

 万が一つでも誰かしらの役に立つかも…と未完成ながら記事にします。セルに県名を入れると、その県に色を塗るという課題に取り組みました。

 エクセルのマクロをいじるなんて、何年ぶりでしょう。初めてかも。123のマクロだった?
 とりあえず、ベクトル図形の地図を読み込んで、一つ県を選択して色を塗る作業をマクロにしました。そのマクロに手を加えて、セルに入れた県名と同じ名前の図形に色を塗るように変更しました。今はここまでですが以下5位までループさせればよいでしょう。

Sub Macro1()
'
    Dim Prefname As String
    Prefname = ActiveSheet.Cells(3, 2)       '変更部分.いったん文字列変数に代入が必要
 
    ActiveSheet.Shapes.Range(Prefname).Select
    With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(255, 0, 0)       'この色指定はループでは配列?…汚くなりそう
        .Transparency = 0
        .Solid
    End With

End Sub

 アクセスのVBAなら結構仕事に使ったのですが、今でもBasicの知識が有効だなんて驚きです。Cには何度も挫折したままですから…orz。
Excelmacro

 こんな感じです。マクロを完成させて、作物ごとのデータ入力、マクロ実行、画面キャプチャ、Flashに貼りつけてコンパイル…。

|

« 値段と生産量 | トップページ | 柳田格之進(1) »

コメント

EXCELのVBAの良いところは、操作の記録でマクロの骨格が自動的に出来るところだと思います。
自動的に出来たマクロにループやエラー処理を加えれば結構色々なことが出来てしまいます。

ここまで作られたのであれば、フラッシュを使わずにEXCELで作りこんでしまえばデータの差し替えも楽だし、コンパイルも要らないのに……と思うのは私がフラッシュを全く知らないからなんでしょう。
フラッシュならEXCELが無くてもブラウザが有れば動くのでしょうし、慣れた開発環境で作るのが一番です。

投稿: nam | 2013年1月19日 (土) 18時09分

あ、Flash部分は、左側の野菜や果物のイラストをクリックすると、右側にこの表やグラフを表示するためだけに使います。
Excelだけで実装するとしたら、フォームに野菜ボタンを貼りつけてクリックで該当ワークシートに移動する…でしょうか。
どうやらVBAでセルの色も取得できるみたいなので、ループ部分のコードが美しくなりそうです。

Flashはネットブックを授業用に使っていたので、実行が軽いということもあります。パワーポイントで作った資料さえもFlashに変換したほうが使いやすい。埋め込みビデオの再生ももたつきません。

投稿: snob | 2013年1月19日 (土) 19時42分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 地図塗り分けのVBA:

« 値段と生産量 | トップページ | 柳田格之進(1) »