「この業務、Excelマクロで回っているんですが、作った人がもう社内にいなくて。Power Automateとやらに移行できるものなんでしょうか」──こういう相談をよく受けます。VBAで組まれた日次集計や帳票作成が現役で動いている一方、作者の退職やVBScript廃止のニュースをきっかけに、VBA資産の将来性に不安を持つ担当者の方は多いです。
先に言ってしまうと、「VBAをPower Automateに移行する」は、正確には「VBAの一部をOfficeスクリプトに書き換えてPower Automateから呼ぶ」「一部はコネクタで置き換える」「一部はVBAのまま残す」という複数の話の組み合わせです。VBAマクロをそのままクラウドフローで動かす仕組みは存在しません。この記事では、どの処理がどこへ移行できて、どこはVBAのまま残すべきかを、Microsoft Learnの一次情報で確認しながら整理します。
1. まず結論
- VBAマクロをPower Automateのクラウドフローから直接実行することはできません。 Excel Online (Business)コネクタは.xlsmファイルを扱えますが、中のマクロは実行できず、実行できるのはOfficeスクリプトだけです。1
- OfficeスクリプトはVBAの完全な代替ではありません。 Excel専用で、他のOfficeアプリ操作・イベント駆動・UserForm・COM/OLE連携・ローカルファイルアクセスはできません。23
- 逆に、ブック内で完結する整形・集計・転記の処理はOfficeスクリプト化する価値が大きいです。Power Automateと組み合わせれば、スケジュール起動やメール受信をトリガーにした自動実行ができ、VBAでは不可能だった「Excelを開かずに動く自動化」になります。2
- テーブルへの行追加・取得程度なら、スクリプトを書かずにExcel Online (Business)コネクタのアクションで直接処理できます。ただしテーブル必須・既定256行・最大25MBなどの制限を先に確認してください。4
- どうしてもVBAが必要な処理は、デスクトップフローのRun Excel macroアクションで既存VBAをそのまま起動する選択肢があります。VBAを書き換えずに起動と前後の連携だけを自動化できます。5
- Officeスクリプトには商用または教育向けのMicrosoft 365ライセンスとOneDrive for Businessが必要です。VBAは追加ライセンス不要なので、ここが移行判断の前提条件になります。62
2. VBA・Officeスクリプト・Power Automateの関係を整理する
まず登場人物を整理します。似た名前が多く、ここが混乱の元です。
flowchart TB
subgraph Cloud[クラウド側]
CF[Power Automate<br/>クラウドフロー]
Conn[Excel Online Business<br/>コネクタ]
OS[Officeスクリプト<br/>TypeScriptでExcel操作]
CF --> Conn
Conn -- Run script --> OS
Conn -- 行の追加/取得/更新 --> Table[Excelテーブル]
end
subgraph Desktop[デスクトップ側]
DF[Power Automate<br/>デスクトップフロー]
VBA[既存VBAマクロ]
DF -- Run Excel macro --> VBA
end
CF -- 呼び出し --> DF
OS -.-> Book[OneDrive / SharePoint上のブック]
VBA -.-> LocalBook[ローカル/ファイルサーバー上のブック]
- Officeスクリプト(Office Scripts)は、TypeScriptでExcelを操作するスクリプト機能です。ExcelのWeb版・Windows版(バージョン2210以降)・Mac版で動作し、Power Automateのクラウドフローから呼び出せます。VBAとの根本的な違いは、VBAがデスクトップ向け、Officeスクリプトがクラウド・クロスプラットフォーム向けに設計されている点です。26
- Excel Online (Business)コネクタは、OneDrive for BusinessやSharePoint上のExcelファイルをクラウドフローから操作するコネクタです。テーブルへの行操作のアクションと、Officeスクリプトを実行する「スクリプトの実行(Run script)」アクションを持ちます。7
- デスクトップフロー(Power Automate for desktop)は、Windows上のアプリを操作するRPAです。Excelアクション群の中にVBAマクロを実行するアクションがあります。5
VBAでできて、Officeスクリプトでできないこと
移行判断で最も重要なのはここです。Microsoft Learnの「Differences between Office Scripts and VBA macros」に基づいて整理します。2
| VBAでできること | Officeスクリプトでの扱い |
|---|---|
| Word・Outlook・AccessなどExcel以外のOfficeアプリの操作 | 不可。OfficeスクリプトはExcel専用で、他のOfficeアプリでは利用できない |
| COM / OLEによる他アプリ・外部コンポーネント連携、Win32 API呼び出し(Declare) | 不可。スクリプトはブックにのみアクセスでき、ホストマシンにはアクセスできない |
| Workbook_Open、Worksheet_Changeなどのイベント駆動 | 不可。Excelレベルのイベントは非サポートで、実行手段は手動実行かPower Automateからの呼び出しのみ |
| UserFormによる独自ダイアログ・入力画面 | 不可。ブック以外のUI(ダイアログや作業ウィンドウ)が必要な場合はOfficeアドインの領域3 |
| ローカルフォルダーのファイル操作(開く・保存・一覧取得) | 不可。ブックの外に出る処理はPower Automate側のコネクタ(OneDrive、SharePointなど)で行う |
| デスクトップ版Excel固有の機能を含む広範なExcel機能 | 一部不可。VBAのほうがExcel機能のカバー範囲は広く、OfficeスクリプトはWeb版Excelのシナリオをほぼカバーする位置づけ |
外部Webサービスの呼び出しについても注意が必要です。Officeスクリプト自体は限定的な外部呼び出しをサポートしますが、Power Automate経由で実行した場合、スクリプト内からの外部API呼び出し(fetch)は失敗します。外部連携はスクリプトの中ではなく、フロー側のコネクタやHTTPアクションで行う設計になります。26 ただし、任意のAPIを呼び出す汎用のHTTPアクションはプレミアムコネクタ扱いのため、Microsoft 365のライセンスだけでは使えません。8 連携先サービスに標準コネクタが用意されていればそちらを優先し、独自APIの呼び出しが必須ならプレミアムライセンスの追加コストを移行判断に織り込んでください。
このリストを見て「うちのマクロはほぼ全部引っかかる」と感じた方も多いはずです。実際、長年育ったVBAマクロは、Outlookでのメール送信、フォルダー巡回、UserFormでの入力受付あたりを普通に含んでいます。ただ、諦める前に処理を分解してみてください。「フォルダーからファイルを集めて、ブックを整形して、メールで送る」というマクロなら、ファイル収集とメール送信はPower Automateのコネクタが得意な仕事で、ブック整形だけをOfficeスクリプトにすれば全体としては移行できる、というケースがかなりあります。
3. 判断表 ── 5つの選択肢をユースケースで使い分ける
移行先の選択肢は「Officeスクリプト化」だけではありません。実務では次の5択で考えます。
| 選択肢 | 向いているケース | 前提・制約 |
|---|---|---|
| (1) VBAのまま残す | 個人・小規模チームの手元作業。UserForm・イベント・他アプリ連携が本質的に必要で、担当者が実行時に立ち会う運用で困っていない | 追加ライセンス不要。2ただし属人化・管理外マクロのリスクは棚卸しでケアする |
| (2) Officeスクリプト化してクラウドフローから実行 | ブック内で完結する整形・集計・転記。スケジュール起動やメール・フォーム受信をトリガーにしたい。ブックをOneDrive / SharePointに置ける | 商用/教育向けMicrosoft 365ライセンスが必要。6イベント・UserForm等は再設計が必要 |
| (3) Excel Online (Business)コネクタで直接処理 | テーブルへの行追加・取得・更新・削除だけの単純な処理。「フォームの回答をExcelに追記」など | 対象範囲がテーブルになっていることが前提。既定256行・最大25MB等の制限あり4 |
| (4) デスクトップフローで既存VBAをそのまま起動 | VBAを書き換える余裕はないが、起動・前後処理(ファイル配置、通知)だけ自動化したい。ブックが社内ファイルサーバーにある | Windowsマシンが必要。クラウドフローからの起動には接続所有者のPower Automate Premiumライセンス(無人実行はProcessライセンス)が必要910 |
| (5) .NETで作り直す | 大量データ処理、複雑な業務ロジック、自動テストやGit管理が必須、帳票生成が主目的 | 開発コストは最大。ただし長期保守性・性能は最も高い。帳票はOpen XML等でExcel非依存にできる |
どれを選ぶかは、次のフローで概ね決まります。
flowchart TD
Start[VBAマクロを1本選ぶ] --> Q1{処理はブック内で<br/>完結しているか?}
Q1 -- いいえ --> Q2{Excel外の部分は<br/>コネクタで代替できるか?<br/>メール送信・ファイル収集など}
Q2 -- できる --> Split[処理を分解:<br/>Excel部分→Officeスクリプト<br/>それ以外→フローのコネクタ]
Q2 -- できない<br/>他アプリのUI操作/COM連携 --> Q5{VBAを書き換える<br/>余裕はあるか?}
Q1 -- はい --> Q3{ブックをOneDrive/<br/>SharePointに置けるか?}
Q3 -- 置ける --> Q4{テーブルへの行操作<br/>だけで済むか?}
Q4 -- 済む --> C3[Excel Online Business<br/>コネクタで直接処理]
Q4 -- 書式/複数シート/<br/>ロジックあり --> C2[Officeスクリプト化して<br/>Run scriptで実行]
Q3 -- 置けない<br/>社内サーバー限定 --> C4[デスクトップフローで<br/>VBAをそのまま起動]
Q5 -- ない --> C4
Q5 -- ある/性能・テストが必要 --> C5[.NETで作り直す]
Split --> C2
注意したいのは、(4)は「移行の終着点」ではなく延命策だという点です。VBA本体の属人化やバージョン管理の課題はそのまま残ります。それでも、「まず起動を自動化して人手の実行ミスをなくし、その間にVBAの中身を段階的にOfficeスクリプトや.NETへ移す」という時間稼ぎとしては十分に実用的です。
4. 実装パターン ── Run scriptアクションとコネクタの制限値
スクリプトの実行(Run script)
クラウドフローからOfficeスクリプトを実行するには、Excel Online (Business)コネクタの2つのアクションを使います。Run scriptはOneDrive(既定の保存場所)にあるスクリプト用、Run script from SharePoint libraryはチームのSharePointライブラリに保存したスクリプト用です。7
典型的な構成はこうなります。
- トリガー: スケジュール(Recurrence)、メール受信、フォーム送信など
- OneDrive / SharePointコネクタで対象ブックを特定
- Run scriptでOfficeスクリプトを実行し、戻り値を受け取る
- 戻り値を使ってTeams通知やメール送信
スクリプトはパラメータを受け取り、値を返せるので、「フローから検索キーを渡し、ブック内の該当データを返してもらい、フロー側でメールにする」といったデータの受け渡しができます。なお、Excel側にあった「スクリプトのスケジュール実行」機能は現在一時的に無効化されており、スケジュール実行はPower Automateのフローで組む方法が案内されています。11
制限値は先に確認する
VBAからの移行で一番落とし穴になるのは、クラウド実行特有の制限値です。デスクトップのVBAには実質存在しなかった上限が、ここでは明確にあります。
| 制限 | 値 | 出典 |
|---|---|---|
| Officeスクリプトの1回の要求・応答サイズ | 最大5MB | 6 |
| 1つの範囲(Range)のセル数 | 最大500万セル | 6 |
| Run script呼び出し回数 | 1ユーザーあたり1日1,600回、かつ10秒あたり3回まで | 64 |
| 同期処理のタイムアウト | 120秒 | 6 |
| Run scriptに渡すパラメータサイズ | 最大30,000,000バイト(約28.6MB) | 6 |
| コネクタが扱えるExcelファイルサイズ | 最大25MB | 4 |
| コネクタの1リクエストサイズ | 最大5MB | 4 |
| コネクタのAPI呼び出し | 1接続あたり60秒間に100回 | 4 |
Excel Online (Business)コネクタでテーブルを直接操作する場合は、さらに次の点を確認してください。4
- 行操作はテーブルが前提です。「行の追加(Add a row into a table)」「行の取得(Get a row)」などのアクションはテーブル(ListObject)を指定する設計で、ただのセル範囲に書かれたデータは対象にできません。VBA時代の「A1セルから適当に書き始めたシート」は、移行前にテーブル化が必要です。
- List rows present in a tableは既定で256行までしか返しません。全行取得にはページネーション設定を有効化します。取得できる列も既定で先頭500列までです。
- 書き込みの反映には最大30秒程度の遅延が起こり得ます。また、コネクタ利用後のファイルは最大6分間ロックされることがあります。
- 複数クライアントからの同時書き込みは非サポートです。デスクトップExcelで開きっぱなしのブックにフローから書き込む、といった運用は競合・不整合の原因になります。
- 対応形式は.xlsxと.xlsb(バイナリブック)です。.xlsmはRun scriptアクションでのみファイルブラウザーから選択でき、他のアクションで使うにはファイルIDの指定が必要です。ただし前述の通り、中のVBAマクロは実行されません。ActiveXコントロールやフォームコントロールを含む.xlsmはコネクタで動作しない場合があるため、事前検証が必須です。1
「毎晩数十万行を集計するマクロ」をそのままOfficeスクリプトに書き換えると、5MB制限や120秒タイムアウトに正面から衝突します。この規模は最初から.NET(選択肢5)に振り分けるほうが健全です。
デスクトップフローでVBAを起動する
VBAをそのまま残す場合、デスクトップフローのLaunch Excelでブックを開き、Run Excel macroアクションでマクロ名(引数はセミコロン区切り)を指定して実行します。個人用マクロブック(PERSONAL.XLSB)のマクロを使う場合は、Launch Excelの詳細設定で「新しいExcelプロセスの下に配置(Nest under a new Excel process)」と「アドインとマクロを読み込む(Load add-ins and macros)」を有効にする必要があります。5
クラウドフローからデスクトップフローを起動するには、マシンの登録とデスクトップフロー接続が必要で、有人実行では接続所有者にPower Automate Premiumユーザーライセンス、無人実行ではマシンにPower Automate Processライセンス(または旧Unattended RPAアドオン)が必要です。910エラー処理や無人実行の前提条件など、デスクトップフロー全般の設計は別記事「Power Automateで業務を自動化する ── クラウドフロー・デスクトップフローの使い分けとエラー処理設計」で詳しく書いています。
5. ライセンスと前提条件
Officeスクリプトは「Excelに付いている無料機能」ではない、という点は移行判断の早い段階で確認すべきです。
- Officeスクリプトの利用・作成には、商用または教育向けのMicrosoft 365サブスクリプションライセンス(Office 365 Business / Business Premium / ProPlus / ProPlus for Devices / A3 / A5 / E1 / E3 / E5 / F3)と、OneDrive for Businessが必要です。組織内共有リンクの有効化と、コネクテッドエクスペリエンスを有効にしたインターネット接続も前提になります。6
- Power AutomateからOfficeスクリプトを使う場合もMicrosoft 365のビジネスライセンスが必要です。E1とF3はPower Automate経由でスクリプトを実行できますが、Excel内のPower Automate統合(Excelの「作業を自動化する」機能など)は使えません。7
- 個人・家庭向けMicrosoft 365でのOfficeスクリプトはプレビュー段階で、Microsoft 365 Insiderプログラムへの参加が必要です。業務利用の前提にはできません。6
- クライアント側は、Excel on the web、Excel for Windows(バージョン2210以降)、Excel for Macで動作します。6
- 一方、VBAはデスクトップ版Excelに組み込まれており、特別なライセンスは不要です。2
つまり、「社内のExcelは永続ライセンス版(買い切り版)で、Microsoft 365は未契約」という環境では、そもそもOfficeスクリプトという選択肢が存在しません。この場合の移行先は、デスクトップフロー経由の起動自動化か、.NETでの作り直しに絞られます。
セキュリティ面の違いも押さえておく価値があります。VBAマクロはExcelと同じ権限で動くためデスクトップ全体にアクセスできますが、Officeスクリプトがアクセスできるのはブックだけで、サインイン中ユーザーの認証トークンがスクリプトに渡ることもありません。管理者はテナント単位・グループ単位でOfficeスクリプトの利用可否や、Power Automateでの利用可否を制御できます。マクロのセキュリティ管理に苦労してきた情シスにとって、この統制のしやすさは移行のメリットの1つです。2
6. 移行の進め方 ── 棚卸し、分類、段階移行
実際の移行は、次の3段階で進めるのをおすすめしています。
第1段階: 棚卸し。 どのブックに、どんなマクロが、誰の管理で動いているかを一覧化します。VBScript廃止対応と同じ手順が使えるので、具体的なやり方は別記事「VBScript廃止に備えるVBA・社内ツール点検ガイド」を参照してください。棚卸しの時点で「もう使われていないマクロ」が2〜3割見つかるのが通例で、それらは移行対象から外すだけで作業量が減ります。
第2段階: 分類。 残ったマクロを第3章の判断表に当てはめます。このとき、マクロを1本単位ではなく処理単位で分解するのがコツです。「ファイル収集→整形→メール送信」のマクロは、(3)コネクタ+(2)Officeスクリプト+メールコネクタの組み合わせに分解できます。分解してもなおVBA依存が残る部分(UserFormでの対話入力、他アプリのCOM操作など)だけが、(1)残置か(4)デスクトップフロー経由の候補になります。
第3段階: 段階移行。 いきなり全マクロを書き換えず、優先順位をつけます。
- 実行頻度が高く、ブック内で完結するものから着手する。移行効果が大きく、Officeスクリプトの習熟にも向いています。VBAとTypeScriptは言語こそ違いますが、Officeスクリプトにも操作記録(Action Recorder)があり、VBAのマクロ記録と同じ感覚で叩き台を作れます。2
- 移行したフローを並行稼働させ、VBA版と結果を突き合わせる期間を設ける。テーブル化や日付形式の違いによる差異はここで洗い出します。
- VBAのまま残すと決めたものは「管理して残す」。実行手順書と担当者を明確にし、可能ならデスクトップフロー起動に寄せて実行ログを残します。
VBA全般の将来性や、そもそもVBAを使い続けてよい場面の考え方は「VBA とは何か - 制約、将来性、置き換えるべき場面と現実的な移行パターン」に、帳票生成を.NETへ寄せる場合の方式比較は「Excel帳票出力の作り方 - COM/Open XML/テンプレート」にまとめています。なお、.NETからExcelをCOMで操作する構成を選ぶ場合は、プロセスが残留する古典的な問題があるため「C#のExcel操作でEXCEL.EXEが残る問題 ── COM参照の解放パターンと置き換えの判断」も併せて確認してください。
7. まとめ
「VBAからPower Automateへ移行できますか」への答えは、「マクロ丸ごとの移植はできないが、処理を分解すれば大半は移行先がある」です。
ブック内で完結する処理はOfficeスクリプト化してクラウドフローから呼び、単純な行操作はコネクタに直接任せ、他アプリ連携やUserFormが絡む部分はVBAのまま残すかデスクトップフロー経由で延命し、大量データや複雑ロジックは.NETに振り分ける。この仕分けさえ最初にやっておけば、移行は一気にやる必要がなく、頻度の高いマクロから順に少しずつ進められます。
逆に、仕分けをせずに「全部Officeスクリプトに書き換えよう」と始めると、イベントやUserFormの壁、5MB・120秒の制限、テーブル必須の制約に次々ぶつかって頓挫します。移行の成否は書き換えの腕前より、着手前の棚卸しと分類でほぼ決まります。VBA資産は「いつか捨てるもの」ではなく「仕分けて活かすもの」として扱うのが、結局いちばん安上がりです。
関連記事
- VBA とは何か - 制約、将来性、置き換えるべき場面と現実的な移行パターン
- VBScript廃止に備えるVBA・社内ツール点検ガイド
- Power Automateで業務を自動化する ── クラウドフロー・デスクトップフローの使い分けとエラー処理設計
- Excel帳票出力の作り方 - COM/Open XML/テンプレート
- C#のExcel操作でEXCEL.EXEが残る問題 ── COM参照の解放パターンと置き換えの判断
関連する相談領域
合同会社小村ソフトでは、Excel / VBAで動いている既存業務の棚卸しから、Power Automate・Officeスクリプト・.NETへの段階的な移行設計まで、既存資産を活かす前提での相談を扱っています。
参考リンク
-
Microsoft Learn, How to use macro-enabled files in Power Automate flows. .xlsmファイル内のマクロはPower Automateから実行できずOfficeスクリプトのみ有効であること、Run scriptアクションのみ.xlsmをファイルブラウザーで選択できること、ActiveX/フォームコントロールを含むファイルが動作しない場合があることについて。 ↩ ↩2
-
Microsoft Learn, Differences between Office Scripts and VBA macros. OfficeスクリプトがExcel専用でありブックにのみアクセスできること、イベント非サポート、COM/OLEはVBAのみ、Officeスクリプトに商用/教育ライセンスが必要でVBAはデスクトップ版Excelに標準搭載であること、操作記録・セキュリティ統制の違いについて。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10
-
Microsoft Learn, Differences between Office Scripts and Office Add-ins. Officeスクリプトはブックとのみ対話でき、ダイアログや独自UIコントロールが必要な場合はOfficeアドインが必要であることについて。 ↩ ↩2
-
Microsoft Learn, Excel Online (Business) - Connectors reference. 最大ファイルサイズ25MB、1リクエスト5MB、List rows既定256行とページネーション、取得列の既定500列上限、Run scriptの10秒あたり3回・1日1,600回制限、最終利用後最大6分のファイルロック、書き込み反映の最大30秒遅延、1接続60秒あたり100回のスロットリング、同時編集非サポート、対応ファイル形式について。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Microsoft Learn, Run macros on an Excel workbook. デスクトップフローのRun Excel macroアクションによるVBAマクロ実行、PERSONAL.XLSBのマクロ実行にLaunch Excelの「Nest under a new Excel process」「Load add-ins and macros」オプションが必要なことについて。 ↩ ↩2 ↩3
-
Microsoft Learn, Platform limits and requirements with Office Scripts. 必要ライセンスの一覧とOneDrive for Business要件、対応プラットフォーム(Excel on the web / Windows版2210以降 / Mac)、要求・応答5MB制限、範囲500万セル制限、Run script 1日1,600回制限、120秒タイムアウト、パラメータ30,000,000バイト制限、Power Automate実行時に外部API呼び出し(fetch)が失敗すること、個人・家庭向けはプレビューであることについて。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12
-
Microsoft Learn, Run Office Scripts with Power Automate. Run script / Run script from SharePoint libraryの2アクション、Power AutomateでのOfficeスクリプト利用にMicrosoft 365ビジネスライセンスが必要なこと、E1・F3はPower Automateからの実行は可能だがExcel内の統合機能は使えないことについて。 ↩ ↩2 ↩3
-
Microsoft Learn, Trigger desktop flows from cloud flows. クラウドフローからデスクトップフローを起動するための前提条件(登録済みマシン、デスクトップフロー接続、実行形態に応じたライセンス)について。 ↩ ↩2
-
Microsoft Learn, A failed license check on a desktop flow run. デスクトップフローの有人実行には接続所有者のPower Automate Premiumユーザーライセンス、無人実行にはUnattended RPAアドオンまたはPower Automate Processライセンスが必要なことについて。 ↩ ↩2
-
Microsoft Learn, Office Scripts in Excel. Excelのスクリプトスケジュール機能が一時的に無効化されており、代わりにPower Automateのフローでスケジュール実行することが案内されている点について。 ↩
関連する記事
同じタグを共有する最新の記事です。さらに近い話題で知識を深められます。
Power Automateで業務を自動化する ── クラウドフロー・デスクトップフローの使い分けとエラー処理設計
Power Automateのクラウドフローとデスクトップフローの違い、PowerShell/VBAとの使い分け、ライセンス、エラー処理、UI自動化の安定化、認証情報の安全な扱いまで、業務自動化を運用に乗せるための実践的な設計指針を整理します。
メールで届く注文書・請求書PDFをPower Automateで自動処理する ── 保存・振り分け・通知・読み取りの設計
メールで届く注文書・請求書PDFの保存・振り分け・通知をPower Automateで自動化する設計を整理します。Outlookトリガーと共有メールボックスの前提、署名画像の誤検知対策、AI Builderによる読み取りとライセンスの注意点まで実務者視点で解説します。
Power Automateで承認フローを作る ── 紙とメールの稟議・申請を電子化する
紙の稟議書やメール添付Excelの申請・承認をPower Automateで電子化する実践ガイド。承認アクションの種類、Forms・SharePoint・Teamsの受け口の使い分け、実行履歴28日・タイムアウト30日を踏まえた記録の残し方、再割り当てや差し戻しの設計まで整...
VBScript廃止に備えるVBA・社内ツール点検ガイド
VBScript段階廃止に備え、VBA・Excelマクロ・社内ツールの棚卸し、静的検出、実行ログ、代替技術選定、テスト、段階展開を整理します。
VB6アプリはいつまで動くのか ── ランタイムのサポート状況と現実的な.NET移行の進め方
VB6アプリケーションはいつまで動くのか。VB6ランタイムのサポートポリシー(Windows 11でも動作対象)と、IDEサポート終了済みという非対称な現状を整理し、全面リライト・自動変換・段階移行の判断表、移行前の棚卸し、VB6と.NETの非互換、C#とVB.NETの選択...
関連トピック
このテーマと近いトピックページです。記事を起点に、関連するサービスや他の記事へ進めます。
Windows技術トピック
Windows 開発、不具合調査、既存資産活用の技術トピックをまとめた入口です。
このテーマがつながるサービス
この記事は次のサービスページにつながります。近い入口からご覧ください。
技術相談・設計レビュー
改修方針、設計レビュー、既存資産の扱いを整理するための技術相談です。
既存Windowsソフトの改修・保守
既存 Windows ソフトの機能追加、保守、段階的モダナイゼーションを支援します。
よくある質問
この記事のテーマについて、相談時によくある質問をまとめています。
- 既存のVBAマクロはPower Automateから直接実行できますか?
- クラウドフローからは実行できません。Excel Online (Business)コネクタは.xlsmファイル自体を扱えますが、その中のマクロをPower Automateから実行することはできず、実行できるのはOfficeスクリプトだけです。一方、デスクトップフロー(Power Automate for desktop)にはRun Excel macroアクションがあり、Launch Excelで開いたブックのVBAマクロをそのまま実行できます。VBAのコードを変えずに起動だけ自動化したい場合はデスクトップフロー経由が現実的な選択肢です。
- OfficeスクリプトはVBAの完全な代替になりますか?
- なりません。OfficeスクリプトはExcel専用で、WordやOutlookなど他のOfficeアプリは操作できません。ブックにしかアクセスできないためローカルファイルやCOM/OLE連携も不可で、Workbook_Openのようなイベント駆動やUserFormによる独自ダイアログもありません。逆に、ブック内で完結する整形・集計・転記のような処理であればOfficeスクリプトに置き換えられ、Power Automateからスケジュール実行やイベント起動ができるようになります。両者は代替関係ではなく守備範囲が違うと考えるのが正確です。
- Officeスクリプトの利用に必要なライセンスは何ですか?
- 商用または教育向けのMicrosoft 365ライセンス(Office 365 Business / Business Premium / ProPlus / E1 / E3 / E5 / F3 / A3 / A5)とOneDrive for Businessが必要です。Power AutomateからOfficeスクリプトを実行する場合もMicrosoft 365のビジネスライセンスが必要で、E1とF3はPower Automate経由の実行はできますがExcel内のPower Automate統合機能は使えません。VBAがデスクトップ版Excelに標準で含まれ追加ライセンス不要なのとは対照的で、移行判断の前に自社のライセンスを確認しておく必要があります。
- Excel Online (Business)コネクタだけで自動化は完結しますか?
- 単純な処理なら完結しますが、制限が多い点に注意が必要です。行の追加・取得・更新・削除はテーブル(ListObject)になっている範囲が前提で、List rows present in a tableは既定で256行までしか返さずページネーションの有効化が必要です。ファイルサイズは最大25MB、1リクエストは最大5MBで、書き込みの反映に最大30秒の遅延が生じることもあります。テーブルへの数行の読み書きはコネクタ直接、セル書式や複数シートにまたがる処理はOfficeスクリプト、という使い分けが実務的です。
著者プロフィール
記事の著者プロフィールページです。
小村 豪
合同会社小村ソフト 代表
Windows ソフト開発、技術相談、不具合調査を中心に、既存資産が残る案件や原因が見えにくい障害調査に強みがあります。
公開リンク