VBAでカンタンなグラフを描きたい
こんにちは。伊川(@naonaoke)です。
pthonを勉強していると、どうしても、統計という分野から避けられません。
この統計の分野は、なかなか難しいのです。
しかし、この世の中か、数字で支配されています。
グラフを描くのは、Excelの操作では、そんなに難しくないです。
しかし、そのひと手間が面倒です。
その手間をVBAが解決します。
目次
このブログは、こんな人にお勧め
- 日々の数値を、一瞬でグラフ化したい人
- VBAを勉強中の人
- 統計を勉強している人
解決
この視覚化することが重要なのです。
VBAでグラフを描く
統計の中には、度数分布、標準偏差、偏差値、回帰分析など様々な方法があります。
Excelは、その機能があるのに、大半の人は、関数の使い方とVBAを勉強します。
しかし、本当に重要なのは、集計を元に、どのような手法で分析するかが、重要なのです。
どんなに、素晴らしい関数を使っても、どんなに素晴らしいコードを記載しても、結果を分析できなければ意味がありません。
VBAでグラフを描く 作業手順 その1 データベースを確認
グラフゾーンを確認①
グラフゾーンを確認②
下の図は、24列と、69列に値があり、グラフエリア①のように、値は隣り合っていません。
マクロの記録でも、グラフは作成可能です。
しかし、汎用性がないので、VBA実行します。
VBAでグラフを描く 作業手順 その2 グラフエリアを可変にする
競馬は現時点で、最大18頭までしか出走がありません。
しかし、16頭出走の場合を考えると、グラフを描いても、17,18は出走していないのに、グラフを描かなければなりません。
気になければいいのですが、私は気にしますので、なんとしても可変にします。
MaxRow = Cells(Rows.Count, “B”).End(xlUp).Row
このように記載します。
しかし、グラフを記載する場合には、さらに工夫が必要となります。
VBAでグラフを描く 作業手順 その3 Unionメゾットを使う
複数のRangeオブジェクトをまとめた、コレクションとしてのRangeを返すメソッドです。
難しく思うかもしれませんが、もっとカンタンに説明します。
Ctrlキーを押しながら、セルを選択すると、複数のセルを選択できます。
Unionメゾットは、そのCtrlキーを押しながら、セルを選択するイメージです。
VBAでグラフを描く 作業手順 その4 今回のコード
今回利用する変数
今回のメインコード
これで完成です。
VBAでグラフを描く 作業手順 その5 グラフを表示させる位置を決める
グラフは完成しましたが、グラフの位置を決めることができます。
つまり、自分の一番表示させたい場所を指定することができます。
これでお好みの位置にグラフを表示させることができます。
余談ですが、最近のTwitterの内容です。
このグラフをどうしても自動でグラフを作成したかったので、みなさんへ紹介しました。
このグラフは、単勝と複勝のオッズの動きをグラフにしました。
6番、9番、10番できまり、3連複は、万馬券になりました。
この数値の統計を近日中に公開します。#万馬券#異常オッズ#コンピ指数#レイティング指数#コラボ指数#直結式#ブログ書け pic.twitter.com/4gaPMebYL7
— 伊川直助@競馬の必勝法はあると信じている男で、データ競馬信者 (@IkawaNaosuke) August 30, 2020
ここがポイント
今回は、半分以上が私の趣味の内容です。仕事は妥協しても、趣味には妥協したくないのです。また、ExcelVBAと競馬は相性がいいです。実現したいことを、VBAで考えることは、VBAのスキルも必然的に向上します。
まとめ
今回は、グラフの書き方でした。
VBAを使わなくても、グラフを描くことはカンタンです。
しかし、そのカンタンなことも、VBAで再現してみてください。
きっとVBAのスキルも向上します。
最後まで読んできただきありがとうございました。
今回のサンプルファイルはありません。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。