2025年になりました。このサイトでは、これまでも以下の記事を公開して、プログラミング言語やPC事務業務の効率化に関して各種述べてきました。
2022年末のChatGPTの登場により、昨年2023年は生成AIというあらたな選択肢もでました。
この記事では、改めて生成AIの動向も加味しつつ、PC事務業務の生産性向上を目的として初心者が学ぶのにおすすめのプログラミング言語についてまとめてみました。
目次
- 生成AIが登場してもプログラミング能力はやはり必要
- Python~ハードルは高いが以前として最有力~
- Office VBA~最も歴史が古いがやや後退気味~
- JavaScript/HTML~影の最重要スキル~
- RPAツール~ガバナンスと導入コストの悩み~
生成AIが登場してもプログラミング能力はやはり必要
ChatGPTやCopilotといった生成AIツールは、プログラムコードをAIが書いてくれます。そのため、一部の界隈では今後プログラマの職業の需要が激減するといわれています。
しかしながら、このことが意味しているものは、プログラマの職業需要は激減するだけであり、以前として様々な仕事の場でプログラミング知識が必要になることは変わらないと思っています。
むしろ以下の理由から、私個人の意見としてはますますプログラミングの知識を持つことが必要になってくると考えております。
前提としてのプログラミング言語の存在や種類を知らないと生成AIでも何もできない
先日、以下の記事を書いて、JavaScriptCanvasを使って絵やアニメーションをChatGPTに作らせました。
これらはWEBページの仕組みとしてHTMLのCanvasというものがあり、JavaScriptで絵やアニメーションがあるからという知識があってのものです。
このような何か作り出すための前提となる知識はやはり必要であり、最低限のIT知識やJavaScriptやHTMLというもの存在など、プログラミング言語の知識は必要になると考えています。
高度なプログラムになると詳細な指示やコードの中身のチェックが必要
あたりまえのことですが、大規模なシステムになると、プログラマのプログラミングの知識だけでは作ることはできません。相応の要件定義・設計のスキルをもって仕様書・設計書をしっかりたてないと複数人開発はもとより、個人開発であってもうまく開発できません。
ChatGPTに開発をお願いするとしても正確で詳細な仕様を説明しないとこちらが求めるプログラムは書いてくれません。
加えて複雑なものになればなるほど、人間でさえも間違いやバグが発生します。
先日以下の記事で検証しましたが、ChatGPTの場合GPT3.5だと複雑な仕様のプログラムを正確に書くことはできませんでした。GPT4ならできましたが、それでもCopilotとChatGPTで大きく異なるプロトタイプアプリケーションを作りました。
そのためには結局作成したプログラムの中身を検証して、間違いがないか検証する必要があります。そのため、プログラミングの能力は今後不要になるスキルではなく、引き続き必要になるだろうと考えております。
それではこの動向を踏まえて、プログラミング言語についてご紹介できればと思います。
Python~学習ハードルは高いが以前として最有力~
- メリット
- ネットの情報、書籍などドキュメントが豊富。学習コストは低い。
- 覚えてしまえば、オートメーションから機械学習までなんでもできる
- デメリット
- コマンドライン言語のため、独学となるとやや初心者へのハードルが高い
- 自由になんでもできてしまうために、セキュリティやガバナンスを気にする組織は許可したがらない
引き続き、プログラミング言語の入門としての最有力はPythonと思います。
私も過去に入門向け記事に書いていますが、ネット上の情報、書籍などふまえて最も豊富にあります。
エンジニアとして従事していない事務職の方が業務の自動化のためにPythonをつかっているだけでなく、機械学習でAIを作るためにもPythonが使われており、覚えることができればほとんどの場で役に立つのも大きな強みです。
プログラミング言語としての覇権はますます拡大する一方で、VisualBasicという別のプログラミング言語の習得が必要だったMicrosoftOfficeのマクロもPythonで書けるようになるべくMicrosoftの方で準備が進められています。
とりあえず迷ったらPythonというのは事実ですが、一方で、コマンドラインといういわゆる黒い画面で操作する部分があったりで後述するものに比べるとややハードル高いのではないかという心配があります。
加えて、なんでもできすぎてしまうが故に、外部ライブラリを追加でインストールしたりする都合上、マルウェア感染リスクなどセキュリティリスクも懸念されています。そのため、セキュリティやガバナンスを重視する組織だと、禁止しているところもあります。
※もっとも、現実的にはPythonに限らずのことであり、プログラミング教育が現在政府レベルで進められていますが、この教育にはセキュリティなどのリテラシーも合わせて必要と私は思っています。
Office VBA~最も歴史が古いがやや後退気味~
- メリット
- Pythonと同様にドキュメントが豊富。学習コストは低い。
- ExcelやWordの操作を通じてプログラムコードを書くため、独学のハードルもPythonより低い。
- ExcelやWordに限定した操作にとどまらず、ブラウザ操作、ファイル管理などOfficeアプリケーション以外のPC作業も自動化できる。
- デメリット
- マルウェア配布の温床となっており、Microsoft自ら制限を加え始めている
昔からPC事務業務の自動化として使われていたプログラミング言語がOfficeのVBA(Visual Basic Application)です。引き続き有力候補の一つと思います。
実際にVBAを積極活用している業務現場ではよく知られていることですが、PDF作成、フォルダ作成などの外部ファイル管理やブラウザ操作の自動化もできます。そのため、Officeアプリケーションの操作だけでなく、PC業務の全ての作業を自動化できるようになります。
一方で、その性質を悪用されマクロ付きのExcelやWordファイルは、悪意のある人物によるマルウェア配布の温床となっており、Microsoft自ら対策として各種制限を加えており、かつてほど自由に使うことが困難になり始めています。
加えて先述の「Python in Excel」のような別言語代替や「VB Scriptの非推奨化」の動きもあり、今後肩身が狭くなる可能性もありそうです。
現状、最もPC事務業務の場で活用されている言語ではありますが、私個人は今後も覇権を取り続けることができるのかは疑問に思っています。
JavaScript~影の最重要スキル~
- メリット
- ブラウザツールが主流の現代においてベースとなる知識
- File System Access APIなどを活用すれば内部環境のファイル操作もできる
- Microsoft365を利用しているならばOfficeScriptとしてマクロを作れる
- デメリット
- もともとはWEBサービス開発用の言語なのでPC事務効率化目的となるとドキュメントが少ない
- 本気でJavaScriptだけで完結させようとすると、ブラウザ拡張利用などの工夫が必要になりクセがある
ネット上や書籍を探すとなると2トップは先述のPythonかVBAになってしまうのですが、クラウドベースによるブラウザツールが主流となっている今日において、私個人はJavaScriptおよび、HTMLなどのWEBアプリケーションプログラミングの知識が影の最重要スキルとなっていると思っています。
PythonやVBAでブラウザ操作を自動化する場合、結局プラスアルファでHTMLやJavaScriptの知識をもっていないと十分に活用できません。
もともとはWEBページ作成用のプログラミング言語のため、目的ベースでいくとドキュメントが非常にすくなくなりますが、実は学習コストはとても低いです。JavaScriptであれば、PythonやVBAと並行して初心者が勉強してもリスクは低いと思います。※私個人も以下に書いていますのでよろしければご参照ください。
加えてFile System Access APIというものもあり、ブラウザツールベースで内部ファイル操作も行うことができたり、Microsoft 365を利用しているならば、OfficeScriptと呼ばれるマクロがJavaScriptで書かれており、実は汎用性もとても高いプログラミング言語であったりします。
全てをJavaScriptで完結となると、ブラウザ拡張などを使った工夫が必要でクセがある言語ですが、学習コストも低く、学習して損がないプログラミング言語と考えています。
RPAツール~ガバナンスと導入コストの悩み~
- メリット
- ビジュアルベースのプログラミングであるとともに、開発事業者のコンサルなどもあり、導入できるのであればハードルが低い
- マネジメント観点でセキュリティ対策などのガバナンスもとりやすい
- デメリット
- アルゴリズムを組み立てるという意味では結局プログラミングの知識は必要
- かゆいところを求めると結局PythonやJavaScriptを覚える必要がでたり、逆に高価なシステムを導入する必要がでる
最後にRPAツールの導入ですが、セキュリティなどの組織ガバナンスを行いたい立場の人にとっては最有力とされておりますが、利用する立場になってみると結局かゆいところにとどかなかったり、現状はまだまだ課題が多くある状態と私は考えています。
加えて、ノーコードでできるという謳い文句がよくでてきますが、これはノンプログラミングを意味しているのではなく、ビジュアルベースでプログラミングをできるだけで、なんらかの場所でプログラミングの学習がないと使うことはできません。
さらに、無料で使えるPowerAutomateDesktopでさえも、細かいことをさせるとなるとJavaScriptやPythonで個別にコードを書かないといけない部分がでたり、結局文章のプログラミング言語を覚える必要がでてきます。
RPAを販売している事業者には、導入コンサルティングもあわせて販売しているところがあるため、そこでプログラミングを学べたり、組織レベルでガバナンスも考慮してという事情があるのであれば検討してみてもいいですが、現場の利用者視点でゼロから導入するのはRPAはPythonなどのプログラミング言語以上にハードルがあるように思います。
終わりに
最後まで読んでいただきありがとうございました。業務環境におけるプログラミング言語導入の参考になれば幸いです。
Photo by Andrea Natali on Unsplash