あまりだれも言わない、VBAツール作成のキモ(前知識)
この資料は「Excel-VBA(プログラム言語)を勉強してみようかな?」と
ヤル気を起こさせることを目標とした記事です。
社内の勉強会用に作った資料の焼き直しです。
●本記事の対象
(Excel-)VBAってたまに聞くけどなんなのソレ?って人
●本記事の目的
ネットのVBAの記事をみても一向に便利ツールが作れないという人への
●用語の定義
「Excel-VBAを使って業務効率化をするツール」
の事を本記事のなかでは【VBA業務ツール】とします
●【VBA業務ツール】の典型パターン
2つあると思います。
まず、プログラムとか考えずに「何かうまいことしてくれる不思議なバッジ」があると過程します。
そのバッジをどこにつけるか?でツールのパターンが分けられると思います。
[Chk型]
すでにある管理表に情報のチェックをするような機能を入れるパターン。
ボタンを押すと、期限切れのデータの行に色をぬったり、入力が決まっている列に
変なデータをいれると「データ違うぞボケ!」と怒ったり、キーになる情報が重複してたら
「データ重複しとる。どちらか一つだけにせい!」と注意してくれたりするようなイメージ。
すでに利用されているファイルに機能(VBA)を組み込む形

[Tool型]
インプットとアウトプットがある形のプログラム。
まあ一般的なプログラムよね。
ファイルが単独でツールになっている形。その機能(VBA)専用のファイル

※[Chk型]とか[Tool型]とかはあくまで本記事のなかだけの区別です。
一般用語ではありません。なので[Chk型][Tool型]とか会話でつかっても相手は「ハニャ?」
となります。ご注意を。
●【VBA業務ツール】を作るのに必要な事
2つあるとおもいます
(1)VBAの知識
あたりまえですが
(2)設計思想
【VBA業務ツール】をつくるという事は現状の作業を変更するという事です。
ある作業の開始から終了まで一連の流れがあるとすると、
その作業の途中の部分を切り取って変化させようってのが
【VBA業務ツール】を作って業務をかえるという事です。

既存フロー
開始⇒作業1⇒作業2⇒作業3⇒作業4⇒作業5⇒作業6⇒終了
新フロー
開始⇒作業1⇒【VBA業務ツール】⇒作業6⇒終了
とする事です。
ここで【VBA業務ツール】の前後に入れる考えなきゃならん事があります。
つまり「INPUT情報」と「OUTPUT情報」です。
これは既存フローにはありません。
新フローにて新たに、【VBA業務ツール】作成者であるあなたが、
考えなければならん事です。
これはつまるところ「要求仕様を考えなさい」ということです。
(1)と(2)をバランスよく持ってないと【VBA業務ツール】はできません。
ネットの記事を見てVBAを勉強したつもりでも(1)を増やしているにすぎません。
ネジとか釘とかの使い分けの知識をいくら増やしたところで、家はたてられません。
また反対に(1)が全然ないと(2)をドライブさせる事ができません。
のこぎりの現物や使い方を知らずには家は建てられません。
(んじゃ、どうすりゃいいの?って思うかもしれませんが、個人的には
現業で動いているツールのコードを読む&写経する&改造して遊ぶってのが
(1)(2)を両方鍛える一番いい勉強法だと思ってます)
[Chk型][Tool型]のサンプル
[Chk型]、[Tool型]のツールについて、ほんとに簡単なサンプル作成をしてみます
★[Chk型]
★[Tool型]
サンプルの作成を通じて、「あ、こうゆう事なのね!」とか「思ったより簡単じゃん」と思っていただき
学習を進める一助になれば幸いです。
以上。
Discussion