図形を描いてみよう
文字を書いて、消す。繰り返す、条件分岐・・・。ずいぶんたくさんのことができるようになってきました。
次はなにをしましょうか?
文字が書けるようになったら、次は絵が描きたいですよね。ね?ね?描きたいですよね!?
しょうがないなぁ、じゃあ、つぎは絵を描く方法に行きましょうか!
さっそくVBEを開きましょう。
今回のプログラムはこれです。
1 2 3 |
Sub 図形() Shapes.AddShape msoShapeRectangle, 50, 50, 100, 200 End Sub |
![](https://tech-loader.com/wp-content/uploads/2022/04/autoshape1.jpg)
書きあがったら、さっそく実行しましょう。
できましたね。
そう、これは長方形を描け、の命令だったんですね。
Shapes.AddShape msoShapeRectangle, 50, 50, 100, 200
ちょっとずつ、文が複雑になってきました。
shapes
オブジェクトのaddShape
メソッド、引数は5つで、順番に図形の種類、左上の座標、右下の座標、幅、高さとなります。・・・、魔法の呪文に聞こえましたか?
まぁ、最初のShapes.AddShape
は、実際、お決まりの呪文みたいなもんです。図形を描く魔法の呪文だと覚えておけばいいでしょう。次のmsoShapeRectangle
は、「長方形」です。ここの言葉を変えることで、描く図形を変えることができます。問題は次の4つの数字です。エクセルの画面には目には見えない、「座標」という、グラフ用紙のマス目のようなものがあります。今見えている、「セル」とは少し意味が違うので、混乱しないようにしましょう。
エクセルのシートの横軸をy座標、縦軸をy座標ということにすると、
左上が(x、y)=(0,0)
ということになっています。
右に行くほど、xの値は大きくなり、下に行くほどyの値は大きくなります。
さっき描いた長方形では、1つ目と2つ目の数字がそれぞれ、左上の頂点のx座標、y座標になります。
3つ目と4つ目の数字は、それぞれ図形の横幅、高さとなります。
![](https://tech-loader.com/wp-content/uploads/2022/05/shape-param.jpg)
これで、形や大きさ、位置を自由に変えられるようになりました。次は・・・、もちろん色ですよね。
エクセルでは、図形を書くときに同時に色を指定するのではなく、一度書いた図形の色を後から変更する、という順番で作業します。
そのためには、色を変えるのはどの図形か、といことをエクセルに教えてあげる必要があるんです。
図形を調べるには、図形を選択した状態で、「オブジェクトの選択と表示」をクリックします。
![](https://tech-loader.com/wp-content/uploads/2022/05/viewObject.jpg)
すると、
![](https://tech-loader.com/wp-content/uploads/2022/05/objectName2.jpg)
このように選択されて表示されたものが、この図形の名前だとわかります。
名前がわかったので、図形を指定して色を変えてみましょう。
プログラムはこんな感じです。
1 2 3 4 5 |
Sub 色() Shapes("正方形/長方形 1").Fill.ForeColor.RGB = vbYellow Shapes("正方形/長方形 1").Line.Weight = 8 Shapes("正方形/長方形 1").Line.ForeColor.RGB = vbGreen End Sub |
このようになれば成功です。
![](https://tech-loader.com/wp-content/uploads/2022/05/shape-color.jpg)
.Fill.ForeColor.RGB = vbYellow
は、「図形の塗りつぶし」の色は黄色だよ、です。以前、文字の色を変えた時にも出てきましたね。
.Line.Weight = 8
.Line.ForeColor.RGB = vbGreen
は、線の色や太さを表しています。これも、自分でいろいろ試してみましょう。
今回はmsoShapeRectangle
という、長方形をかく呪文を使いましたが、エクセルにはほかにもたくさんの図形が用意されています。
msoShapeOval
に変えると丸、msoShape5pointStar
なら、星形になります。
画像付きの一覧表にまとめておきましたので、いろんな図形を書いてみましょう。
とりあえず、好きな図形を描くことができるようになりました。が、いまのままじゃちょっと問題があるんですよね。てことで、次回はその問題を解決していきます。
次回予告
次回は、図形を描いてみよう(その2)です。いまのままじゃちょっと問題があるんですよね
おたのしみに。