こんにちは、だっちょブログのだっちょです。
エンジニアとしてキャリアをスタートし、最近エンジニア界の洗礼を受けてへこんでいます…
そんな私ですがつい先日ほんの少しですがVBAをコーディングする機会がありました。
駆け出しエンジニアや事務を職業としている方はこれから始めてみようとしている人はかなり多いのではないでしょうか?
そんな方々に実際の現場でこんな使い方があるよという1つの参考になれば幸いです。
VBAとは?
そもそもVBAについて知らないという人向けへの説明です。
知ってるわボケ!って人はスキップしてください。
VBAとは
VBA【 Visual Basic for Applications 】 とは、Microsoft Officeに含まれるアプリケーションソフトの拡張機能で、利用者が簡易なプログラムを記述して実行することで複雑な処理の自動化などを行なうことができるもの。また、そのために用意されたプログラミング言語。
Microsoft社のOfficeシリーズのソフトウェアの一部であるWordやExcel、Access、PowerPointなどで利用できる機能で、同社のプログラミング言語および実行環境であるVisual Basicの簡易版を用いてプログラムを作成することができる。これらのソフトウェアの動作の一部を変更したり、繰り返し行われる定型的な作業や複雑な処理を自動的に実行することができる。
少しわかりずらいですよね。
要するにワードやエクセルに複雑な操作をさせる専用のプログラム言語だと思ってください。
実際どんな時に使える?
私が今回作成したプログラムは、ソフトウェアのデバックテストを行う際に使用する試験項目表を作成した際の項目番号自動採番プログラムを作成しました。
制作時間はもともとVB.netの経験があるため構文などを調べながら作成し、およそ15分程度でした。
それでは具体的な例を見ていきましょう。
VBAプログラム
仕様
大きなくくりに項番1を採番し、そこから手順内を1から採番という風に作成していました。
こんな感じで試験項目表を作っていたのですが、項番1だけでおよそ200近くあるため手作業だととてもじゃないがやってられません…
ここで初めてVBA書いてみようと思いつきました(^^;
ロジック作成
よくプログラミング初学者でありがちないきなりコーディングスタート。ということは控えましょう。
初心者こそロジックに時間をかけしっかりと作成。
「完璧なロジックで未来の炎上をいま沈下」誰が言ったのかは知りませんが仕事中いつもこの言葉が頭をよぎります…
私がよくやる方法として、日本語でそれっぽいプログラムを書くということです。
実際に書いてみましょう!
N = 30
IF 現在の行のC列が空じゃなければ
A列に採番
これをN回数繰り返す
IF 現在の行のD列が空じゃなければ
IF C列が空であれば
B列に採番
ELSE
1から採番
これをN回数繰り返す
これならプログラムがわからない人にもなんとなくやりたいことがわかるのではないでしょうか?
コード
名前空間(一番上の2行)にcountとSheet_Nameを定義することで、TEJUN_Numberingサブルーチン・Outputサブルーチンの両方から参照を可能とします。
わざわざOutputサブルーチンを作成する必要はないのですが、初めてVBAを書いたので余計な事をしたくなってしまい興味本位で処理を分けました(^^;
これといって難しい処理はしていないので、上から順に一行ずつ読むことができれば初心者の方でも理解できるのではないかなと思います。
以上、決してきれいなコーディングではないですが仕事に追われとっさに作成した実業務で使用したVBAプログラムでした。
おわりに
今回の記事はいかがだったでしょうか?
本当に思い付きで書いてしまったので、わからないことがあればコメントください(^^;
以上ただの仕事備忘録でした。
少しでもあなたの参考になったのなら幸いです。
最後までお読みいただきありがとうございました!
コメント