VBAの未来

マイクロソフトの悪いところでありますが、いつものように英語版しかなく日本語版がないので、日本ではあまり取り上げられていないようですが、2020年3月11日、マイクロソフトは次のような重要な宣言を公式に行っています。

「今後は、Visual Basic を言語として進化させる予定はありません。」

「言語の変更を必要とする .NET Core の今後の機能は、Visual Basic ではサポートされない可能性があります。」

MS公式情報「NET 5.0 で計画されている Visual Basic サポート」

(原文、英語)

Visual Basic support planned for .NET 5.0 – Visual Basic Blog (microsoft.com)


(翻訳)

上記をまとめると、VBAから.NETにシフトチェンジするよ、ということのようです。

「モダンExcel」は「.NET」

ちなみに、「モダンExcel」の2大ツールである「Power Query」「Power Pivot for Excel」では、上記「.NET」が使われています。

こうしたことを踏まえれば、「自動化といえばVBA」というこれまでの絶対的な構図は崩れ去り、これからは「.NET」による様々な自動化ツールが急速に世の中を席巻することになると思われます。

これが、「2025年の崖」の話に繋がるわけです。


現にマイクロソフトは「Power Platform」による「RPA」という自動化の仕組みを推し進めています。

Excelで自動化を考えるのであれば、今後は「モダンExcel」。
さらに色々な自動化を考えるのであれば、「Power Platform」。

こうした世の中になっていくのは、ほぼ間違いないでしょう。

Is VBA a dead end ?

何事も、海外の反応を見ることは、とても参考になり、良い勉強になります。

以下のブログは、2017年9月28日の投稿というかなり前に投稿されたものです。少なくとも、この時点では明確になっていなかった識者の予想が、現時点のファクトとして存在しているのは、興味深い事実でもあります。
たとえば、「MSはVBAに投資することはもうしない」「VBAは、最新のスクリプト、Web テクノロジ、.net/Java を追加するのが非常に困難だ」と、下記ブログは何年も前に主張しています。そして、「VBAは、技術的に行き詰まりだ」と結論付けています。ご判断は各自に任せます。

VBAにしかできないことって、そもそもナニ?

VBAによるマクロをExcelで使えば、様々な「自動化」ができるわけです。
そして、これまでExcelで自動化と言えば、代名詞のように「VBAによるマクロ」が当たり前でした。

そこで、具体的にどんなことができるのか、ごく簡単にまとめてみました。
下記は、VBAによるマクロを使った自動化のほんの一例です。このほかにも、色々な自動化ができます。

1.データ処理(数式の挿入、セルの書式設定、ピボットテーブルの作成更新、ユーザーフォームの作成など)
2.ファイル処理(Excelファイルの作成、変更、更新など)
3.ブック処理(ブックの開閉、保存など)

これだけ色々できるんだったら、VBAによるマクロで、十分じゃニャーの?

そうとも言えない、現実「ファクト」があるわけです。

上記「2.ファイル処理」と「3.ブック処理」、これらは「Power Automate Desktop」などの「RPA」ツールで自動化できます。
しかも、こうしたRPAツールの利点は下記でも述べる通り、単にExcelの自動化にとどまらず、様々なデータやプロセスと統合できます。
つまり、RPAはVBAよりも自動化の「拡張性」が高いわけです。

「モダンExcel」を推進する立場からすると、上記「1.データ処理」は、もはや「モダンExcel」ですべきだと思います。
そもそもVBAはExcel上で動くので、処理速度がとても遅いのです(モダンExcel比)。

きれいなデータにして準備する「Power Query(パワークエリ)」、きれいなデータをモデル化して可視化につなげる「Power Pivot for Excel」、従来からある「ピボットテーブル」「ピボットグラフ」「テーブル」を使いこなせば、Excelの上限値を越えてAccess同様に1億行のデータあるいはそれ以上のデータでさえも、Excel上で瞬時に分析できる、こうした「現実」「ファクト」もあります。

このように、「VBA」ができることは、「モダンExcel」とその先にある「RPA」を使えば、すべてできてしまいます。
しかも、Excelの上限値を超えることも、「モダンExcel」であれば難なくクリアもします。

「VBA」にしかできないことは、果たしてどこにあるのか、という視点で「VBA」が「RPA」よりも優位である点を探ると、ExcelでVBAを使うのであれば、VBAは細かい設定・指示をプログラムしやすいということはあるのかなとは思います。
ただ、「データ分析」や「データの見える化」(可視化)という点でいえば、「モダンExcel」の方がVBAよりもはるかに速くデータ処理が可能です。しかも、「モダンExcel」にはいわゆる「104万行の壁」と呼ばれるデータ読込限界もありません。
こうした点を踏まえれば、「データ分析」「可視化」に関しては、VBAよりも圧倒的に「モダンExcel」が有利であると言えるでしょう。

自動化対決! RPA VS VBA

VBAによるマクロも、RPAも、「自動化」できるという点は同じです。
上記1「データ処理」、2「ファイル処理」、3「ブック処理」というVBAによる自動化は、当然RPAでもできます。
ただし、自動化に対する姿勢・スタンスは、両者で大きく異なります。

以下、ごく簡単に違いをまとめてみます。

比較項目VBARPA
データ収集・入力・接続手動で、一つのブックのみ…自動で接続し、複数のアプリと連携!
使用できるアプリExcelだけを対象に自動化…Excelを含むアプリをコラボして自動化!
プログラミング能力難しいプログラムスキルが必須…ノーコード、ローコード!
共同作業少人数なら可能…全社共有が可能!
メンテナンス困難を伴う…プロセスが分かりやすく、容易!
安全性(組織での管理)組織全体での管理は難しい…
(マクロ禁止とすることは可能)
誰が、いつ、何を使ったか、監査可能!
共有できるユーザー範囲も、制御可能!

上記のように、RPAはVBAよりも優位性があります。

個人的には、比較項目の一番上「データ収集・入力・接続」(様々なデータと接続でき、色々な視点で分析が可能となる!)、一番下「安全性(組織での管理)」(内部統制的に必須!)、この2点でRPAがVBAよりもはるかに優れていると思っています。
規模の大きな組織であるほどExcelを使う自動化は、VBAではなくRPAを使うべき、現時点においてはそう考えています。

蒸気機関車になる、この選択肢もなくはない

消滅するかもしれないアーキテクチャー(構造)やテクノロジー(技術)に固執する、これもありだとは思います。

「産業革命」を見れば分かります。
かつて世の中を席巻していた「蒸気機関車」は「自動車」になりました。
そして今、自動車の動力は「エンジン」から「EV」「水素」などになり、まもなく「空飛ぶ自動車」も登場予定です。

このように技術革新が進む中、「蒸気機関車」はかなり人気ですね。私も何度か乗車しました。
浅草や京都では「人力車」なんかも、大変な人気です。
いずれも、「物珍しさ」「懐かしさ」がヒットの要因です。

でも、蒸気機関車も人力車も、ご存じのように交通機関としては、もはや「メインではない」のです。

今、Excelにおける自動化ツールは、日本ではまだまだVBAが主流です。
しかし、上述のようにマイクロソフトは公式に宣言したのです。

「今後は、Visual Basic を言語として進化させる予定はありません。」

「言語の変更を必要とする .NET Core の今後の機能は、Visual Basic ではサポートされない可能性があります。」

これを、どうとらえるか?

蒸気機関車よろしく、VBAを使い続ける、これも「可能である」のであれば、ありかもしれません。

VBAの歴史から、将来を占う

VBAを使い続けることが「可能である」のであれば、と奥歯に物が挟まるような言い方をしたのには、訳があります。

かつてマイクロソフトは、Microsoft Office 2008 for Mac でVBA サポートを一度廃止したことなどがあるからです。

ちなみに、上記マイクロソフトの公式宣言に対し「VBを利用する開発者で重視されているのは互換性なので、このことはあまり問題にならないかもしれない。」という意見もあります。

一方で、「Visual Basicユーザーは要注意、.NET 5より後では使えない可能性」という人もいます。

「脱Visual Basicは茨の道、VB.NETへのマイグレーションに待つ「落とし穴」」と発言する人もいます

「サポート終了から10年たってもまだ現役、Visual Basicを「今度こそ」絶つ方法」を提唱する人もいます。

日経XTECH「サポート終了から10年たってもまだ現役、Visual Basicを「今度こそ」絶つ方法」より転載


現に、1991年に登場した「Visual Basic」の正式サポートはすでに終了しています。
にも関わらず、未だ多くのVBが業務で使われ続けていますが、果たして本当に今後も使い続けられる実行環境が存在し続けるのか、と疑問を投げかける人も現れ、「VBアプリケーションの刷新が急務!」「脱Visual Basic最大の「難所」、VB.NETへの移行時に必ず直面するあの課題」を指摘する人もいます。


これらの指摘を、どう解釈し、VBAの今後をどう占うべきなのか?

マクロの登場は、1994年、平成6年!

時を戻そう!

Excelに「マクロ」という機能が搭載されたのは、西暦「1994年」、和暦「平成6年」です。

時代は、「細川内閣」から、連立与党の「羽田内閣」、そして「自社さ連立政権」へ。
社会党(当時)から、初の首班指名で「村山内閣」発足。

ネルソン・マンデラ氏が、南アフリカ共和国で「黒人初の大統領」就任。

個人的に思い出される衝撃的な出来事があったのも、1994年。
「音速の貴公子」アイルトン・セナ氏が天に召され、「松本サリン事件」が発生し、「ジュリアナ東京」が閉店したのも、この年。

ちなみに、この年、第36回日本レコード大賞は、Mr.Children「innocent world」。

どんだけ~、というお気持ちだにゃ~…。

そろそろ、時代にあったアーキテクチャやテクノロジーが必要なのでは???

Officeスクリプトとの関係

話の目先を少し変えます。

Excelのオンライン版で使える自動化ツール「Officeスクリプト」が、今注目されています。

さまざまな Office 拡張機能ソリューションの対象となる領域を示す 4 つの作業領域の図。Office スクリプトと VBA マクロはどちらも、エンド ユーザーがソリューションを作成できるように設計されていますが、Office スクリプトは Web と共同作業用に構築されています (VBA はデスクトップ用です)。

「Officeスクリプト」は、マイクロソフトが提供する「Power Platform」との連携が容易なツールです。
Power Platformの一つに「Power BI」というビジネスインテリジェンスツール(データ分析ツール)がありますが、その原型が「モダンExcel」になります。

このOfficeスクリプトは、汎用性のある言語「Java Script」ベースのため、スクリプトの実行に使用されるマシン環境に関係なく、一貫した動作とアクセシビリティが得られ、他の Web サービスを呼び出すことも可能なツールとして今後自動化ツールとして脚光浴びそうです。

マイクロソフトは、この「Officeスクリプト」を、絶賛売り出し中です!

実際に試してみて、実に面白いツールだと思いました。
今はオンライン版Excelにのみ実装されているOfficeスクリプトですが、いずれデスクトップ版にも装備されるでしょう。

そうしたとき、VBAの立ち位置は、どうなるのか?

上述のように「今後は、Visual Basic を言語として進化させる予定はありません。」とマイクロソフトは言明もしています。

いずれにしても、Officeスクリプトのような新しいツールとの連携も、RPAならばノーコード、ローコードで可能となるわけで、RPAによる自動化の拡張性は無限大と言えるでしょう。
こうしたことは、VBAでは実行困難だと思います。

下記もご参照ください。

VBA VS officeスクリプト

この動画をご覧ください。かなり衝撃的な内容です。

要約すると……。

① VBAは「個人」で使う分には良いが、「チームで共有」することを踏まえるとofficeスクリプトに軍配
② officeスクリプトは「自動コメント機能」が便利(VBAにはそうした機能がない!)
③ メッセージボックスの作成など、VBAでできる機能の一部は現在、officeスクリプトではできないが、将来的に解決予定

そして、この動画の「最も重要な指摘」が、これ!

VBAは、
officeスクリプトで代替可能!

「少なくとも、あと10年先くらいまではVBAがあるかもしれないけれど、それ以降はVBAがofficeスクリプトで代替される可能性があるかもね」という、非常に興味深い、MVPの方のご指摘。

これも「ファクト」です。

彼女さんは
「あと10年でVBAが officeスクリプトに代替される」
って言っているけど、本当かな?!

技術進歩は、予想以上に速いぞ! 神のみぞ知る!

「VBAer」は「Power Platformer」になれば良いのでは?

以前「VBAでは「2025年の崖」に吸い込まれるぞぉ?!」を投稿しましたが、この記事には、これまでにない大きな反響がありました。

確かにVBAはもう古いね、これからはPower Platformなどの新しい技術に挑戦だ!

「脱VBA」に対し、前向きにとらえる意見は結構ありました。


その一方、こうしたコメントも。

「VBAで仕事している人もいるのだから………。」

既存VBAerを擁護する意見も、少数ですがありました。



これには、正直残念だな、そう思いました。

「臭い物に蓋をする。」



国民性なのか、いざというときになり、慌てふためく。それまでは、ただじっと耐え忍ぶ。いつも一緒です。



大切なのは「ファクト」です



いつの世も、新しいものが出てきては、古いものが消え去る、もしくは変化する。
VBAも、今そうした状況に晒されている最中なのでしょう。



でも、こうも思うのです。



VBAerは、本当に優秀なプログラマーの方が多い。
VBAをやってみたいと思っている人たちは、自動化に対し、とにかくやる気がある。

だったら、その技能や情熱を、新しいアーキテクチャーやテクノロジーに振り向けてみたらどうだろう?

「Power Query」にしろ「Power Pivot for Excel」にしろ、VBAで自動化するよりも簡単だと思います。
その先にある「Power Platform」だって、VBAerであれば難なくこなせるはず。



「食わず嫌い。」



Power Platformに代表される「ノーコード」「ローコード」ツールに対し、こうした方が結構いると思います。

しかし、時代は着実に変化しているのです。

時代を見据え、これからのことを考えてみたらどうでしょう。



「1次情報」でいわれていることをしっかり受け止める、これは大切なことだと思いますよ。

ユー、まずは「モダンExcel」から、始めちゃいなよ!

VBAより、速く、大量のデータを、様々な視点で分析できるようになるよ!

モダンExcel研究所

フォローお待ちしてます!

error: Content is protected !!