Registered 2022.01.10 Update 2023.05.21 技術習得:業務系アプリQ&A,独自開発
Registered 2022.01.10 Update 2023.05.21 技術習得:業務系アプリQ&A,独自開発
「VBAってプログラム言語ですか?使えたらプログラマーですか?」と聞かれることがあります。答えは状況によって変わります。
ExcelVBAはExcelがないと動かないし、WordやAccessのVBAも同様です。つまり、Office系のアプリの付属品であり、単独では動作しません。
単独で動かす(又はパッケージできる)ことが前提の商用アプリ開発には不向きのため、「プログラム言語」には入れないことが多いです。
システムエンジニア(SE)が打ち合わせや要件の定義などのシステム設計を行い、プログラマー(PG)はそのシステム部分のプログラミングを行い、コーダーはWeb系システムの見た目(HTML、CSS、Javacsript系)を仕上げる人というざっくりな分類があります。
現在、コーダーの仕事は効率化のためWebプログラマーが担っているので、コーダーは「指示通りのコードを書く人」と認識されることもあります。
プログラムを書けないSE、全部を一括で行うPG、自称SE、自称PGなども現実には存在するので、名称だけで区別するのは難しいです。
VBAで考えると、自社内で相談相手も手伝いもなく自分一人でVBAを使った業務用アプリを設計から納品までできるなら社内SEが該当するかな?という感じです。外部の人に「SEです」とか「PGです」と言うと誤解されるので言わないほうがいいでしょう。
しかしながらVBAを覚えても意味ない、ということはありません。
VBAはOffice製品上で動きサンプルも豊富、ネットサンプルのコピペでも動く、記述方法はプログラム言語としては非常に簡単です。企業内なら片手間でちょっとしたツールやアプリを開発できる人は重宝され、給料やボーナスが多くもらえる可能性があります。
Office製品をインストールするとVBAが動く環境も同時に構築されます。
開発画面「VBE」はコンパイラなどすべて内包しているので、自分から何かを探してインストールする必要はありません。
エラーがあればきちんと表示してくれます。メッセージの意味が分からなくても、ネットで調べるとすぐに対処法が見つかります。
では通常のプログラム言語はどうでしょうか。
ローカル環境で開発する場合は、開発環境を端末にインストールします。次に初期設定から自分の使う設定に書き換えます。必要なライブラリ(他の人が書いた再利用OKなコード)を取集し設定します。コードを記述するエディタを探してインストールします。この段階でコンパイラ(エラー探知)が一緒ならいいのですが、別途必要なこともあります。
このようにプログラミングに入る前から作業がたくさんあります。
わからないことはVBAと同じくネットや書籍で調べられますが、英語がわからないと解決策を見つけるのが困難なこともあります。
VBAはプログラミング初心者に対して親切すぎます。
VBAを使うといろいろできます。
ボタンを押したら印刷出来る単純なものや、特定作業用の業務アプリ開発(私はこれが多いです)、ゲーム開発などユーザー次第です。昨今はPythonやJavascriptから操作する方法もネットで見つかるし、事務作業のお手軽自動化と言えばExcelVBAがおすすめされます。
難しく感じる点として、VBAは知識のないユーザーでもコピペで動かせるため「どうして動かないのかわからない」も発生しやすいことが挙げられます。
VBEの画面にコードを入力して「実行」した後のエラーメッセージ内容が理解できない、エラーメッセージの示す場所以外で間違っていた、変数問題、Nullと空白の違いなどいろいろあります。
ネット検索するとピンポイントの解決方法が見つからないこともあり、結局は自分の頭で考えなくてはならない。
たいていのプログラム言語を記述する人は、動かす前から自分であれこれ調べ知識を蓄えていくため、「どうして動かないのか」の対処に移行しやすいですが、VBAコピペ職人は「対処法へ移行する知識すら不足」しているので余計に難しく考えます。
よく言われる「プログラムは書いた通り動いてくれる。動かないのは書かれたコードに問題があるからだ」は、業務アプリを1つ作った後から言えるようになりました。最初は「なんで動かないんだ」の連続です。