🏁 脱 Excel VBA
20年以上前 (Excel 2003) から進化せず VB6.0 のままで使われ続けてきた VBA (Visual Basic for Applications) 。今ではより安全で柔軟な代替技術が登場し、本格的に引退の時期が訪れているのではないでしょうか?
🚀 なぜ VBA から移行すべきなのか?
- VBA は 32-bit 環境を前提としており、最新技術との互換性が限られている。
- セキュリティリスク が高まり、Microsoft も VBA マクロをデフォルトでブロック する方針を採用。
- クラウド技術 との統合が難しく、オンライン環境での自動化が困難。
- チーム開発 や長期的な運用が難しく、メンテナンス性に乏しい。
このような理由から、現代的な代替技術へ移行することを検討するべきです。
🛑 VBA マクロのデフォルトブロック
Microsoft は、ネットからダウンロードされた Office ファイルの VBA マクロをデフォルトでブロック する方針を発表しました。これは Emotet などのマルウェア対策の一環であり、企業の IT セキュリティにも大きな影響を与えました。
🏗️ Excel における VBA の代替
VBA を使わずに Excel の機能を活用する方法を紹介します。
📌 Excel 内で完結する処理
✨ LAMBDA 関数
カスタムの再利用可能な関数を作成し、それらを名前で呼び出せます。
🔄 Power Query
ブック内のデータや外部データに接続し、変換、結合、整形が可能。
▶ 【モダン Excel】Power Query について #PowerQuery - Qiita
🌐 オンラインで使用する処理
📝 Office Scripts
Excel Online で動作する TypeScript 言語スクリプト。組織全体で共有でき、ローカルアプリからも起動可能。
Power Automate との連携も可能。
⚙️ Power Automate
豊富な コネクタ を組み合わせ、処理を構成しタスクを自動化。
💻 Excel 外を操作する処理
🤖 Power Automate for desktop
デスクトップ上の繰り返し作業を自動化し、RPA を実現。
🛠️ PowerShell
UI を必要としない VBA マクロの処理は、PowerShell に移植すれば対応可能。
🔍 その他
🐍 Python in Excel
追記 (2023/09/15)
Excel 内で Python を実行できる Python in Excel 機能が登場。より高度なデータ処理が可能に。
📌 Python in Excel とは?
Python in Excel は、Excel 内で直接 Python コードを記述・実行できる機能 であり、データ分析や可視化に活用できます。現在は Anaconda 環境に準拠 しており、pandas や numpy を含む主要なデータ分析ライブラリが利用可能です。
🚧 まだ実現できないこと
現時点では、外部ライブラリの追加が不可 であり、API の呼び出しや Excel 外のファイル管理、VBA との完全な統合には制約があります。そのため、業務の自動化やシステム制御には別のツールとの併用が必要です。
🏁 参考サイト
- Microsoft、OfficeのVBAマクロをデフォルトブロックへ 悪用対策で - ITmedia NEWS
- LAMBDA 関数 (microsoft.com)
- Excel の Power Query について (microsoft.com)
- Excel on the web の Office スクリプト - Office Scripts | Microsoft Docs
- Power Automate | Microsoft Power Platform
- デスクトップ向け Power Automate | Microsoft Power Automate
- Windows への PowerShell のインストール
- Microsoft、「Python in Excel」を発表 ~Windows向けベータ版でテスト開始