-
Notifications
You must be signed in to change notification settings - Fork 0
MS_VBAMigration
本ページでは、Office バージョンアップに伴う VBA の環境移行の作業範囲を扱います。
下記のように、旧 Office の VBA プログラムも、概ねそのまま使えるようですが、
コンバージョン(手修正有りのコンバージョン移行)が必要となるケースもあるため、
移行の見積もりに関しては、プログラムの移行性評価作業として、1・2 本のプログラムを
サンプリングし、実際に移行 ~ テストした上で、移行作業全体の工数を見積もることをお薦めします。
株式会社 オデッセイ コミュニケーションズさんの
- 「VBAエキスパート > VBAマイグレーションセンター」
http://vbae.odyssey-com.co.jp/about/migration.html
に VBA 移行の情報が纏まっています。
- 技術資料
- Office 97 / 2000 から Microsoft Office 2003 Editions への移行
Visual Basic for Applications 移行に関するチュートリアル - Office 97 / 2000 から Microsoft Office 2003 Editions への移行における、
Visual Basic for Applications の互換性と注意点
- Office 97 / 2000 から Microsoft Office 2003 Editions への移行
Office97/2000 → 2003 移行時の VBA プログラムについては、概ねそのまま使えるようです。
Office2003 → 2007 移行に関しても、VBA プログラムは、概ねそのまま使えるようです(下記、HP を参照)。
-
ITmedia エンタープライズ:
Office 2007の互換性問題を検証――理解しておくべきマクロやアドインへの影響
http://www.itmedia.co.jp/enterprise/articles/0605/01/news010.htmlマクロや拡張機能のサポートは継続。
- VBA、マクロ
- COM アドイン
- スマートタグ
- 作業ウィンドウ
- ActiveX コントロール
ただし、VBA は Office 2007 の 64 ビット版には移植されないので注意が必要。
-
日経パソコン オンライン : Office2007プレビュー
http://pc.nikkeibp.co.jp/article/NPC/20060615/240980/- 新しいVBAは何が変わったのか?(第6回)
http://pc.nikkeibp.co.jp/article/NPC/20060727/244547/ - 旧バージョンとの互換性やいかに(第8回)
http://pc.nikkeibp.co.jp/article/NPC/20060810/245683/
- 新しいVBAは何が変わったのか?(第6回)
VBA の基本仕様は変わっていませんが、一部、検討課題もあるようです。
解決方法としては、1 つ・1 つ調べての対応となるようです。
対応方法としては、上記と大差ないようです。
-
Office > 2010 > 導入・展開 > 基礎からわかる! Office 2010 移行術 TechNet
http://technet.microsoft.com/ja-jp/office/hh563066 -
Office > 2010 > 代表的なタスク > 互換性 > Microsoft Office 2010 ホワイト ペーパー
http://technet.microsoft.com/ja-jp/office/ff945357.aspx- Office 2010 の構成と展開
- ファイル フォーマット およびドキュメント レイアウトの互換性について
- マクロ互換性について(2003 以前のバージョンで作成したマクロを 2007 以降のバージョンで利用する場合の影響)
-
Office > 2010 > 代表的なタスク > 互換性 > Microsoft Office 2010 の互換性
http://technet.microsoft.com/ja-jp/office/ff460851.aspx -
TechNet ライブラリ > Office 2010 リソース キット
-
Office 2010 の互換性を評価する
http://technet.microsoft.com/ja-jp/library/ee460876.aspx-
Office 2010 アプリケーション互換性ガイド
http://technet.microsoft.com/ja-jp/library/ee819096.aspxOffice 2010 のアプリケーション互換性評価ツール
- Office Environment Assessment Tool (OEAT)
- ISV アプリケーション互換性可視化プログラム (Application Compatibility Visibility Program)
- Microsoft Office 2010 Code Compatibility Inspector (OCCI)
-
-
Office 2010 での製品と機能の変更
http://technet.microsoft.com/ja-jp/library/cc178980.aspx- Office 2010 の変更
http://technet.microsoft.com/ja-jp/library/cc178954.aspx
- Office 2010 の変更
-
-
Office 開発の航海日誌 Logbook
【Office 2010】Office 2010 のオブジェクトモデルの互換性に関する情報について
http://saikik5656.wordpress.com/2010/05/09/ -
@IT > Windows 7とOffice 2010、企業はいま移行すべきか
http://www.atmarkit.co.jp/news/201005/06/gartner.html -
TechTargetジャパン > ホワイトペーパー ダウンロードセンター > Office 2010導入完全ガイド
http://wp.techtarget.itmedia.co.jp/contents/?cid=11788
VBA の基本仕様は変わっていませんが、一部、検討課題もあるようです。
解決方法としては、1 つ・1 つ調べての対応となるようです。
32bit 版の Office であれば 64bit の OS 上でも
WOW64 上で 32bit で動作させることができ、問題はそれほど多くありません。
64 ビット版の Office では、下記の点に注意が必要になります。
-
ActiveX コントロールや COM アドイン
ActiveX コントロールや COM アドインは 64 ビット環境を想定して
作られてはいませんので、多くが 64 ビット版の Office では動作しません。 -
VBA7
64 ビット版対応に伴い VBA も新しいバージョンである VBA7 になりました。
殆どの VBA コードは 64 ビット版 Office でもそのまま動作しますが、
64bit対応などで一部修正が必要になります。-
LongPtr型とLongLong型が追加(変換するための演算子、関数も追加)
演算子:CLngPtr、CLngLng、関数:VarPtr、ObjPtr、StrPtr -
DeclareステートメントにPtrSafe属性を追加 -
VBA7とWin64という 2 つの条件付きコンパイル定数が追加 -
また、64 ビットバージョンのコモンコントロールが含まれていない。
-
移行メモ(正誤): 元ページの「64 ビット版fficeでも」は
「64 ビット版 Office でも」の誤記と判断し、修正した。
補足(現在は 64bit 版が既定): 本ページ記述時点(2010 年前後)は
「VBA との互換性を考えて 32bit 版を推奨」だったが、
Microsoft 365 の新規インストールでは 64bit 版が既定に変わっている。
したがって、Declareステートメントを含む VBA を移行する場合、
上記のPtrSafe/LongPtr対応は例外ではなく必須作業として
見積もりに含める必要がある。
なお、32bit / 64bit の両方で動かす必要がある場合は、
条件付きコンパイル(#If VBA7 Then/#If Win64 Then)で分岐させる。
-
TechNet Blogs > Microsoft Office 2010 Engineering (日本語訳) > 64 ビット版 Office について
http://blogs.technet.com/b/office2010_jp/archive/2010/05/05/64-office.aspx- VBA との互換性を考えて、既定のインストールでは 32 ビット版 Office 2010 をお勧めしています
- (更新: ほとんどの VBA コードは 64 ビット版 Office でもそのまま動作しますが、詳しくはこちらの資料を参照してください)。
-
初心者備忘録 > Office関連 > 64ビット版Officeの注意点(Office 2010)
http://www.ka-net.org/office/of30.html\ 現段階(2010 年 6 月時点)ではアドイン周り含めて環境が整っていないため、64 ビット版の導入はあまり推奨されていません。 -
TechNet
- Office > 2010 > ヒント集 > Office 2010 の 64 ビット版と 32 ビット版のどちらを展開するか判断するための 4 つの考慮事項
http://technet.microsoft.com/ja-jp/office/gg605223- ユーザーが実行しているオペレーティング システム
- 組織で使用しているドキュメントの種類
- Office をアップグレードするのか、新しくインストールするのか
- 組織で Office アドインまたは VBA マクロを使用しているか
- Office > 2010 > ヒント集 > Office 2010 の 64 ビット版と 32 ビット版のどちらを展開するか判断するための 4 つの考慮事項
-
TechNet ライブラリ > Office 2010 リソース キット
-
Office 2010 の互換性を評価する
http://technet.microsoft.com/ja-jp/library/ee460876.aspx-
64 ビット版の Office 2010
http://technet.microsoft.com/ja-jp/library/ee681792.aspx
-
-
-
MSDN ライブラリ > Office 開発 > Office 2010 技術記事\
Office 2010 の 32 ビット バージョンと 64 ビット バージョンとの互換性
http://msdn.microsoft.com/ja-jp/library/ee691831.aspx- Microsoft Office 2010 の 32 ビット バージョンと 64 ビット バージョンについて
- 比較 : 32 ビット システムと 64 ビット システム
- VBA 7 コード ベースについて
- ActiveX コントロールと COM アドインの互換性
- アプリケーション プログラミング インターフェイスの互換性
- 条件付きコンパイル属性の使用
- まとめ、参考資料
- Office 2013 での変更点
http://technet.microsoft.com/ja-jp/library/cc178954.aspx- Office 2013 の IT 担当者向け新機能
http://technet.microsoft.com/ja-jp/library/dd188670.aspx - Access 2013 の新機能 - Office.com
http://go.microsoft.com/fwlink/?linkid=268762&clcid=0x411 - Access 2013 の開発者向け新機能
http://msdn.microsoft.com/ja-jp/library/office/jj250134.aspx - Excel 2013 の新機能 - Excel - Office.com
http://office.microsoft.com/ja-jp/excel-help/HA102809308.aspx - Excel 2013 開発者向けの新機能
http://msdn.microsoft.com/ja-jp/library/office/ff837594.aspx
- Office 2013 の IT 担当者向け新機能
補足(Office 2013 以降の移行で効く変更点): 元ページは Office 2013 で
記述が止まっているため、以降で VBA 移行に影響する主な変更を補っておく。
- クイック実行(Click-to-Run)形式が既定になり、
MSI 形式を前提にしたインストーラ・アドインの配布方法が使えなくなる場合がある。- インターネット由来の Office ファイルに含まれるマクロが既定でブロックされる
(Mark of the Web に基づく既定ブロック)。
ネットワーク共有やメール添付で配布していた VBA は、
信頼できる場所(Trusted Locations)の設定か
デジタル署名が必要になる。移行時に見落としやすい実務上の落とし穴。- Access Services / Access Web アプリの廃止
(→ Accessバージョンアップ)。- VBA そのものは Microsoft 365 でも現役で廃止予定は示されていないが、
Web 版 Excel では動作しないため、Web 併用が要件に入ると
Office Scriptなどへの部分的な置き換えが必要になる。
VBA は、VB6.0 の言語仕様が踏襲されているため、COM に処理を依存しているところがありますが、
この VBA から呼び出される COM(ActiveX Control、ActiveX EXE、VB COM)の
- 「開発環境のサポート期間切れ」に起因する移行対象範囲の拡大や、
- 「当該プラットフォーム上でのサポート無し」のため、代替ライブラリの I/F 変更発生
に起因する修正範囲拡大の可能性がありますので注意が必要です。
補足: これは VB6の保守 で述べられている
「3RD パーティ製 ActiveX がボトルネックになる」という問題と同じ構図である。
VBA 側は言語仕様が安定していても、参照設定している COM の側で詰まる。
-
Office 2003 Editions リソース キット > ジャーナル
- Office 2000 から Office 2003 Editions への移行
http://www.microsoft.com/japan/office/ork/2003/journ/00-03DeltaWPIntro.htm - Office XP から Office 2003 Editions への移行
http://www.microsoft.com/japan/office/ork/2003/journ/xp-03intro.htm
- Office 2000 から Office 2003 Editions への移行
-
Access 2007 に移行する
http://office.microsoft.com/ja-jp/access-help/HA010209115.aspx -
Microsoft Office Access 2003 Conversion Toolkit
http://www.microsoft.com/japan/office/ork/2003/journ/accessconvert.htm -
Access 97/2000 から Access 2003 への移行ガイド
http://download.microsoft.com/download/8/5/0/850cc1ef-8427-4437-9079-900ad17bc933/AccessMigGuide.doc -
Microsoft Technet
- 2007 Office system の移行術のご紹介 TechNet
http://technet.microsoft.com/ja-jp/office/hh432456 - 基礎からわかる! Office 2010 移行術 TechNet
http://technet.microsoft.com/ja-jp/office/hh563066
- 2007 Office system の移行術のご紹介 TechNet
-
Office 製品群 評価ガイド シリーズ
http://technet.microsoft.com/ja-jp/office/jj149945.aspx- Office 互換性ホワイト ペーパー
-
本 Wiki 内
Tags: 移行, Visual Basic
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。