12.まとめ
「先にプログラムを作って動かし、後で説明する」方式での[株価チャート作成]プログラムは、いかがでしたか?
VBAの具体的なオブジェクト・プロパティ・メソッドの理解も必要ですが、今回は次の二つを理解して頂ければ十分ではと思います。
1.処理を分けたプログラミング
「株価チャート」という少し特異なグラフを作成しましたが、プログラミングにおいて次の三つに分けた処理は、かなり汎用的に使うことができます。
- データの検索
- データの集計
- グラフ作成
三つの処理は、「売上データの日別・週別・月別のレポート」といったビジネス関連のデータ処理のみならず、「ウォーキングの歩数と消費カロリー」、「血圧と脈拍数」、「ゴルフのスコア・OBの数」等の個人のデータ処理にも利用できると思います。
2.Excelで可能な処理は、マクロ・VBA化できる
今回のプログラムは、必要最小限と思われるVBAで記述しましたが、例えば「ステップ2・並び替え」(Sort)について、VBAでは次のように記述します。
Range("a1").Sort key1:=Range("a1"), order1:=xlAscending, Header:=xlYes
この[Sort]に関するVBAを知らなくても、「マクロの記録」を作成し、そのVBAを流用すれば同じ処理が可能になります。
しかしながら、全てのマクロ化が有効ではなく、次のように意味のないケースもあります。
(例).「ドロップダウンリスト」のマクロ・VBA化
データ処理の条件指定はできるが、データ処理自体はできない。
以上です。お疲れさまでした!
皆様のプログラミング、及びVBAへの興味・理解に少しでもお役に立てば幸いです。
最後まで、お付き合い頂き、誠にありがとうございました。
参考:今後の発展性・可能性について
今回、説明はしていませんが、次のような発展性・可能性も持っていますので、ご興味のある方は、「参考書のご紹介(Excel関連)」も参照してください。
[ドロップダウンリスト]から[ユーザ-フォ-ム]への変更
[会社=全て]選択時の処理の追加、及び[ユーザ-フォ-ム]で指定された作成条件をパブリック変数に格納する処理に変更すれば実現できます。
[二次元配列]の使用
途中の計算結果を確認しやすいように、シート[検索結果]を使用しましたが、シート[検索結果]の中身は、行と列で表現できる二次元の表とも解釈できます。
そのため、シート[検索結果]の[Cells]の開始行・列は[1]、二次元配列の開始行・列は[0]の違いはあっても、二次元配列そのものになり得ます。
大量のデータ処理には、メモリー上で動作する配列のほうが処理速度が向上します。