業務改善と標準化を同時に実現:MS 365業務システム開発

エクセルVBAの将来性は?VBAからOffice Scriptに切り替えた方がいい?

  
エクセルVBAの将来性は?VBAからOffice Scriptに切り替えた方がいい?
\ この記事を共有 /
エクセルVBAの将来性は?VBAからOffice Scriptに切り替え...

エクセルの自動化に必須のVBAと新VBAと言われるOffice Scriptの違いと、今だったらどちらを習得するべきなのかをお話します。

(動画時間:7:50)

エクセルVBAとOffice Scriptの基本的な違い

こんにちは、リーンシグマブラックベルトのマイク根上です。
業務改善コンサルをしています。

僕は日本語と英語の両方でエクエルを使っているのですが、
下図は英語のエクセルですが、最近メニューバーに「Automate」
つまり「自動化」の機能が使える様になりました。

これで新技術のOffice Scriptを
デスクトップ版のエクセルでも使える様になったのです。

エクセル Automate(自動化)タブ

エクセルの自動化と言えば長い間VBAで
隣の「Developer(開発)」タブを使ってました。
まず、この二つの基本的な違いを見てみましょう。

まず目的は両方とも「業務の自動化」に使います。
対象使用者はどちらも一般ユーザーの「非IT技術者」です。
しかし次から違いが出てきて、
Web版である「エクセルオンライン」ではVBAは使えませんが、
Office Scriptは使えるのです。

エクセルVBAとOffice Scriptの比較表1

僕は業務システムをPowerAppsで作りますが、
PowerAppsもまだ不十分な部分があって、
表示するデータが多すぎる時や、印刷機能等は
まだエクセルでやる方式でやっています。この時に
「エクセルオンラインでVBAが使えれば本当に良いのに」
といつも思っています。

しかし、VBAは開発ツールのVBAエディターを見ても分かる様に、
マイクロソフトはVBAの大きなバージョンアップを
ここ10年以上行っていません。

恐らくこれからもないでしょう。

そこで登場したのがOffice Scriptなのです。
さっきの比較表の続きを見てみましょう。
じゃ、Office Scriptは万能なのかというと、
エクセルのデスクトップ版では、VBAは使えますが
逆に少し前まではOffice Scriptは使えなかったのです。
それが最近使える様になったので、
僕も注目をする様になりました。

しかし、これにも制限があり、
マイクロソフト365のBusiness Standard以上の
ライセンスに限られます。

また、VBAは使っている端末がWIFIに繋がっていなくても使えますが、
Office Scriptはデスクトップ版でもWIFIが無いと使えません。

エクセルVBAとOffice Scriptの比較表2

Office Scriptを習得する利点

この様に見ていくとVBAの今後の進化はなさそうですが、
Office Scriptは今後さらに進化しそうですね。
これから学ぶ人はVBAではなく、
Office Scriptを最初に学んだ方が良いのでしょうか?
僕の意見ではそれは正解です。

Office Scriptは言語としては
「TypeScript」という言語でコードを書きます。
これは世界で一番使われているJavaScriptと親和性が高いので、
その後のITスキルを上げていく事にも有利になるでしょう。

また、TypeScriptはライバルである
GoogleのGoogle Apps Script(GAS)でも採用されているので、
Googleシート上の自動化もできる様になれるのです。

このTypeScriptをOffice Scriptで学ぶ最大の理由は
VBAのマクロ記録の様に「操作を記録」機能があるからです。

残念ながらエクセルのデスクトップ版ではまだその
「操作の記録」機能がないみたいなのでオンライン版を使います。

メニューバーの「自動化」から「操作を記録」をクリックしてから、
シート上で自動化をしたい操作をしていきます。

完了したら「停止」をクリックすると、
その全てのステップのTypeScriptのコードを記録してくれます。

Office Scriptデモ
スクリプトの「ブックに追加」

そのスクリプトの「…」のメニュー内の
「ブックに追加」で実行するボタンも作れます。

一回さっきの操作を削除して、そのボタンを押せば自動化の完成です。
勿論実務で使えるボタンにする為には
記録されたコードの編集ができる様にならなければいけませんが、
この記録機能によって、学習スピードはかなり上がります。

最近では生成AIもあるので学習スピードをもっと上げられますね。
それについては以前動画を作りました。
⇒「IT関係者必見!ChatGPTがまだの方、Bing AIでAIの凄さを直ぐにお知り下さい。」

また、この言語はマイクロソフトの最新の言語なので、
Power Automateとの連携ができます。
Power Automateの編集画面内の「新しいステップ」から、
「Excel Online」を選んで、「スクリプトの実行」アクションで
自分の書いたOffice Scriptのコードを実行させる事ができます。

Power Automate スクリプトの実行アクション

VBAではそのコードを書いたファイルが開いていないと
絶対にコードを実行させる事ができませんが、
Office Scriptだとそのファイルが開いていなくても、
自分が他の事をやっている間でも
そのコードを走らせる事ができるのです。
これで全く新しい業務改善の可能性も出てきます。

VBAでできて、Office Scriptでできない事

なんかこれだけ聞くともうVBAは要らない様に聞こえますが、
やっぱりVBAは必要です。
特に業務システム内でエクセルを使う時では
Office Scriptではまだまだ不十分なのです。

例えばVBAではユーザーに使い易い様に
ユーザーフォームを使って色んなフォームを作る事ができます。

またファイルが開いた時や、あるセルをダブルクリックしたら
コードを走らせたりする事をイベントトリガーと言いますが、
VBAでは多くの種類のイベントトリガーを使う事ができます。

また、VBAで他のエクセルファイルを開いたり、
PDFファイルの作成や、
他のオフィスのアプリケーションを操作する事もできるのです。

それに対してOffice Scriptでは
先ほどのユーザーフォームは使えませんし、
イベントトリガー機能もありません。
また、他のエクセルファイルの操作や
他のアプリケーションとの連携もまだできません。
それらは今後の進化を期待しましょう。

VBAでできてOffice Scriptでできない事

VBAの今後は、最適なツールを習得する行動力

この様な理由で僕の業務システム開発では
Office Scriptはまだ使っていません。
しかし、今回デスクトップ版のエクセルで
使える様になった事を知ったので、
今後は案件によってはこっちを使う事も考えます。

やっぱり最新技術なのでマイクロソフトも
いつかはそっちに切り替えたいと思っているでしょう。

またVBAが年々不安定になったり、
使い難くなったりするのを心配します。

だからと言ってVBAが今後十年以内に無くなるかと言うと、
そうは思いません。これからVBAを学ぶのもありだと思います。

一番大事なのは自分の興味のある技術を常に探すアンテナを持つ事と
最適なツールを習得する行動力を持ち続ける事だと思います。

「こちらの記事も読まれてます

Comment

  1. You’re so awesome! I don’t believe I have read a single thing like that before. So great to find someone with some original thoughts on this topic. Really.. thank you for starting this up. This website is something that is needed on the internet, someone with a little originality!

  2. yotmail より:

    Hello my darling, I just wanted to express how well written and comprehensive this post is, covering almost all the essential details. More blogs like this one would be nice, in my opinion.