プログラミングを使って転職を考える際に
「VBAはプログラミングではない」
と言われることが多々あります。
実際、ガッツリ開発をやっている人からすると、あまりプログラミングではないという認識になるのも納得できる部分があります。
今回は、このVBAがプログラミングではないのかというお話をしたいと思います。
なぜVBAがプログラミングではないと言われるのか
VBA(Visual Basic for Applications)は、Microsoft Officeのアプリケーション、特にExcelで広く利用されているプログラミング言語です。
しかし、プログラマーの間では「VBAはプログラミングではない」との意見も根強いです。
この意見にはいくつかの理由が存在します。
VBAとは
VBAは、Visual Basicを基にしたプログラミング言語で、Microsoft Office製品の自動化やカスタマイズに特化しています。
主にExcelでのマクロ作成に利用され、反復作業を自動化したり、データ処理を効率化したりするためのツールとして非常に便利です。
しかし、VBAには独自の特徴があり、一般的なプログラミングとは異なる側面も持っています。
VBAは非プログラミングと考える人の声
VBAが「非プログラミング」とされる理由には、以下のような意見があります。
1. **簡易的な構文と環境**
VBAは直感的に使える環境を提供しており、特にMicrosoft Excelのユーザーが簡単にマクロを作成できるよう設計されています。
このため、プログラミングの難しさを感じることなくすぐに利用できる点が、プログラミング言語としての評価を下げています。
2. **限られた用途**
VBAは主にExcelやAccessなどのOffice製品で使用されるため、ウェブ開発やアプリケーション開発など、幅広い領域での応用が限られています。
これにより、汎用性のあるプログラミング言語とは一線を画しているとされています。
とはいえ、VBAは大手企業でもたくさん使われている
VBAは、特に大手企業において多くの業務プロセスを自動化するために利用されています。
これらの企業では、日常的な業務の効率化が求められ、そのニーズに応じたツールとしてVBAが重宝されています。
具体的には、データの集計やレポート作成、さらには複雑な数式の処理など、さまざまな業務に活用されています。
特に、Excelを使った業務が多い大手企業では、VBAを駆使することで、膨大なデータを短時間で処理することが可能です。
環境構築がなくてもできる
VBAの大きな利点の一つは、特別な開発環境を構築する必要がないことです。
一般的なプログラミング言語では、IDE(統合開発環境)やコンパイラなどをインストールする必要がありますが、VBAはMicrosoft Officeのアプリケーションに組み込まれているため、すぐに始められます。
ユーザーはExcelやWordを開き、そのままVBAエディタにアクセスして、コードを記述し実行することができます。
この手軽さが、VBAを利用する多くの人々に支持される理由です。
大手企業はMicrosoft製品を使っているところも多く、親和性が高い
大手企業の多くは、業務の効率化を図るためにMicrosoft製品を採用しています。
これは、Microsoftの製品が業務の標準となっているためであり、VBAがこれらの製品に統合されていることで、高い親和性を持っています。
たとえば、Excel、Access、Wordなど、Microsoft製品同士での連携が非常にスムーズであるため、VBAを使った自動化が容易に実現できます。
この親和性により、企業は業務の改善を図り、さらなる生産性向上を狙うことができます。
ファイル単位で完結する
VBAは、ファイル単位で完結することができるため、他のシステムやツールとの連携がしやすいのも特徴です。
具体的には、Excelファイル内でVBAコードを記述し、そのファイルだけで完結するように設計することができます。
このため、特定の業務に特化した自動化ツールを作成しやすく、部門内での業務フローを効率化することが可能です。
さらに、ファイルを共有することで、同じ自動化プロセスを他のチームや部署でも簡単に利用できるようになります。
ちょっとしたシステムを作るうえでは、案外VBAは使いやすいのです。
私の会社でも、ACCESSのVBAで顧客管理システムを作るなど、小規模での開発には活用されているケースが多々あります。
VBAはできるのに、他のプログラミング言語ができない理由は?
VBAを習得している人が他のプログラミング言語に移行できない理由はいくつかあります。
セル操作に依存しすぎている
VBAはExcelのセルを操作するための言語であり、セルやシートに依存したロジックを構築することが一般的です。
このため、データ構造やオブジェクト指向の概念に馴染みにくく、他のプログラミング言語を学ぶ際に障壁となることが多いです。
たとえば、配列やリストを効果的に使えないことから、他の言語で必要とされるデータ処理能力が不足しがちです。
ロジックよりも関数を優先してしまう
VBAを使ってデータを処理する際、関数の使用が優先されがちです。
このため、プログラムのロジックを構築する能力が疎かになることがあります。
具体的には、複雑な問題を解決するためのアルゴリズムを考えるよりも、既存の関数を使って簡単に処理を行う方法に依存してしまうのです。
この傾向があるため、プログラミングにおける論理的思考能力の向上が難しいのです。
例えば、売上表の店舗ごとの売上を集計したい場合、通常のプログラムならSQLで集計したり、二次元配列を使うのが一般的です。
しかし、VBAの場合はExcel側でピボットテーブルを組んでそこから取得するような作り方をする人も多いです。
このように、一般的なプログラムに応用しにくい考え方になっている人も多いのです。
アウトプットの形がエクセル形式が基準になってしまう
VBAでのアウトプットは主にExcelやWordの形式に依存しており、他のプログラミング言語でのアウトプット(ウェブアプリやデスクトップアプリなど)への理解が不足しがちです。
このため、VBAの使用に慣れてしまうと、異なる環境での開発に対する視野が狭くなります。結果として、他のプログラミング言語に移行する際に苦労することが多いです。
コンフィグ情報などをセルにそのまま入れる
VBAでは、必要な設定などを設定シートでセルに入れていたりします。
こういった設定系の情報は、通常のプログラムならコンフィグファイルや設定テーブルに格納します。
また、保管の方法もJSON形式にするなどの工夫をすることがあります。
こういった部分を思考せずに、セルに設定を入れてしまうような設計をしがちなVBAでは、「普通のプログラムのお作法」的なものを学習できない可能性があります。
VBAができる人のキャリアアップ
VBAは、特にオフィスワーカーにとって非常に価値のあるスキルです。
多くの企業が日常業務の効率化を図る中で、VBAを利用した自動化スキルを持つ人材はますます重宝されています。
しかし、VBAができることだけではキャリアアップに直結しない場合もあるため、そのスキルを最大限に活かすための戦略が求められます。
VBAスキルの活用方法
VBAを活用することで、業務の自動化やデータの効率的な処理が可能になります。
これにより、日々の業務負担を軽減し、より高度な業務に集中できる環境を作ることができます。
たとえば、データ集計やレポート作成の時間を短縮することができ、その分を新しいプロジェクトや業務改善に充てることができます。
このような成果を上司やチームに示すことで、自身の評価を上げることが可能です。
資格取得や他のプログラミング言語の習得
VBAのスキルを持っていることを証明するために、関連する資格を取得することも効果的です。
たとえば、Microsoft Office Specialist(MOS)などの資格は、VBAを使いこなす能力を証明するための強力なツールです。
資格を取得することで、就職や転職時のアピールポイントが増え、より高い評価を受ける可能性が高まります。
さらに、VBAだけでなく、他のプログラミング言語やデータベース技術を学ぶことも重要です。
PythonやJavaScript、SQLなどを習得することで、より広範な技術スキルを持つ人材として市場価値を高めることができます。
これにより、VBAを使用する業務に限らず、様々なプロジェクトや役割に柔軟に対応できるようになります。
業務改善の提案を行う
VBAを使って実際に業務の効率化を図ることができれば、自身の価値を大きく向上させることができます。
実際の業務改善の成果を示すことで、上司や経営陣に対して影響力を持つことができ、自身のキャリアをより一層高めるチャンスを得ることができます。
また、自らの提案が実行されることで、チームや部門全体の業務改善にも貢献でき、評価が上がる要因となります。
社内SEやプロジェクトリーダーを目指す
VBAのスキルを持っていることは、社内SE(システムエンジニア)やプロジェクトリーダーとしてのキャリアパスを歩む際にも大いに役立ちます。
業務の自動化やシステム改善に関する知識は、組織内のITリソースを効果的に活用する上で非常に重要です。
また、プロジェクトリーダーとしてチームを率いる際には、業務フローの改善やタスクの優先順位付けにVBAの知識が役立ちます。
VBAができるだけでは転職は厳しい?
VBAのスキルを持っていることは魅力的ですが、転職市場ではそれだけでは競争力を維持するのが難しいです。
以下に、VBAを活かしたキャリアアップのポイントを挙げます。
重要なのは、業務をいかに省力化できるかという考え方
VBAを活用した業務の効率化はもちろん重要ですが、業務全体の最適化を考える能力がさらに評価されます。
たとえば、プロセスを見直し、どの部分を自動化することで時間を節約できるかを考える力が求められます。
企業は、時間やコストを削減できる人材を必要としているため、この視点を持つことが重要です。
社内SEなどはチャンスがある
社内SEやITサポート職などでは、VBAを駆使して業務を効率化するスキルが求められます。
これらの職種では、VBAを使ってシステム間の連携を図り、データ管理を行うことが必要です。このため、VBAを使いこなせる人材は大変貴重です。
加えて、前述したようにプログラミングを学習したり、RPAなどのローコード・ノーコードツールを活用することで、社内SEとしても活躍できる人材に成長することが可能です。
開発をしたい人は別言語の学習が必須
本格的な開発を目指す場合、VBAだけでは不十分です。
Java、C#、Pythonなどの他のプログラミング言語を学ぶことが不可欠です。
これにより、アプリケーション開発やウェブ開発など、さまざまなプロジェクトに対応できるスキルを身につけることができ、転職市場での競争力を高めることが可能です。
まとめ
VBAは業務効率化に非常に役立つツールですが、その特性からプログラミングとは異なる側面を持ちます。
VBAができることは素晴らしいスキルですが、それだけではキャリアアップに限界があるため、他のプログラミング言語を学ぶことや業務の最適化を考える視点が重要です。
将来のキャリアを考える際には、VBAを活用しつつ、新たなスキルを身につけることを強くおすすめします。