VBAのレベルが上がったな、と感じた瞬間

こんにちは。たきもとです。

先日は開発環境構築でxamppを使わなくなるかも、という記事を書きました。
そのときの記事はこちら。

xamppを卒業する日 | たきもとけんご.com


今回は自分のVBAのレベルが上ったなぁ、と感じた件について。
レベルが上がったと入ってもまだ初心者ですが。

VBAを始めた当初はこんな感じだった

レベルアップを実感するために、VBAに手を染め始めた当初の事を書きますね。

用語の意味が分からない

まずVBAってなに?
エクセルの関数ならまぁまぁ使えるけど・・。

こんな状態からスタートしました。
もちろん、
-変数
-配列
-関数
-プロシージャ
-モジュール
-ユーザーフォーム
なんて言葉は知りません。


この頃はとにかく初心者本の言いなりになって勉強していました。

初心者本の言う通りにしかコーディングができない

VBAで何が出来るのか?
これもイマイチよくわかっていなかったので、ひたすら初心者本の言いなりになっていました。

少なくとも、
-本に書いてあることはできるんだろうな
という認識で。


-変数の名前の付け方も本に合わせて
-理由はよく分からないけど,コード冒頭で変数や定数を定義して

こんな具合でした。

今ではこんな感じ

変更に強いコード を意識

VBAに関する初心者本は繰り返し何度も読んでいるので。
今ではひたすら 変更に強いコード を意識しています。

だって大変なんだもん。
ちょっとした変更を何箇所も行うのが。


コード冒頭に変数・定数を集めることで、かなり変更に強いコードが出来上がります。
中級者以上の方にとっては常識かもしれませんが。
初心者にとっては大きな収穫です。

自分のためにツールを作る

ようやく自分が 作りたい! と思うものが形になってきました。


私が物販をやっている関係で、
-在庫管理や商品リストをもっと効率的に扱いたい
という願望があるんです。

もともとVBAをはじめた動機もコレなのですが、やっぱり良いですね。
自分で期待通りの動作をするツールを作るって。
時間はかかりますが、物販の作業自体はかなり楽になります。


現状、私が作ったツールはこんな動作をします。

-今日家に届いた荷物を出荷したい
-だから、商品リストから今日の日付を持ったモノだけ抽出
-抽出したデータは、エクセルの一番後ろのsheetにコピーされる
-コピーされたデータの見た目も気になるので、事前に用意したテンプレと合わせて良い感じにコピーされる


まだまだ実現したい機能はありますが、ひとまずはこんな感じ。
将来的にはWEB上の売買管理システムと自由にデータをやりとりできるようにしたいな。


こんな感じで、自分が こうしたい! という動作を少しずつ実現できるようになっています。

今と昔の違いは次の通り

用語の意味がわかる

正確に用語を覚えているから初心者本の解説も理解できるんですよ。
用語を覚えないと、初心者本に書いてあることが

○○がxxの役割を果たし、これを呼び出すことによって□□を書き替えることなく・・・

みたいな宇宙語にしか思えないので。
これは大きな変化かなぁと。

用語の意味がわかるので、ネットで情報を集める時も以前に比べて理解が早いです。

モジュールの存在場所が意識できる

はじめの内はとりあえず 標準モジュール にコードを書いていきます。
でも、
-どのタイミングで動作させる?
-どのsheetに?
-ブック全体で共通の処理は?
とかを考えだすと、どこにコードを書くか意識せざるを得ません。

これは今だからこそ考えられることかな。
少し前まではこんなこと全然考えなかった。

きっとユーザーフォームの イベント を意識しているからできることだとなんだろうな。

ファイル間の連携を意識

1つのモジュールに全てのコードを収めるのは、私は嫌いです。
だって見にくいから。


これはVBAに限った話じゃないんですけど、
-関数
-クラス
-共通処理・定数
は外部ファイルにまとめた方が良いです。

何故なら、メインファイルがスッキリするから。


現在はデータベースとの連携を試しているのですが、これをメインファイルにベタ書きすると痛い目に遭います。
外部ファイルの呼び出しに不慣れな方は、早めに着手することをおすすめします。

具体的には p261 – p263

ちょっとマニアックな内容になりますが。
私が着手した初心者本
『Excel VBAのプログラミングのツボとコツがゼッタイにわかる本』
の、
p261 – p263
がすんなり解ると 基礎はOKかも という気持ちになれます。


-フォームを作る場所
-private / public

ここら辺が理解できたら、どんどん自分が欲しいモノを作っていくと良いでしょう。

ちなみに、私が plivate/public について理解できたのはPHPでclassを学んだおかげです。
本書では オブジェクト は沢山扱いますが、 オブジェクト指向 は学べません。


本書を使って書いた記事は他にこんなものがあります。


まとめ

私がレベルアップを実感できたのは次の行動を取ったからです。

-用語・定義を正確に覚えた
-手を動かした
-自分が欲しいツールを作っている(現在進行形)


なんとなく始める、よりは目的を持つのが良いと思います。
私は個人事業主なので資本がありません。
だから、
-人を雇う前に環境整備をしよう
-もっと楽に作業をしよう
このあたりがモチベーション・目的になっています。


少しやれば大きなリターンを得られるのがプログラミングの良いところだと思います。

-これから独立・起業を検討している
-お金はないけど作業を効率化したい

こんな方にはプログラミングがおすすめです。


今回は以上です。


  • このエントリーをはてなブックマークに追加

この記事が気に入ったら
いいね!しよう

トップへ戻る