Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
本ページでは、Officeバージョンアップに伴うVBAの環境移行の作業範囲を扱います。
下記のように、旧OfficeのVBAプログラムも、概ねそのまま使えるようですが、
コンバージョン(手修正有りのコンバージョン移行)が必要となるケースもあるため、
移行の見積もりに関しては、プログラムの移行性評価作業として、1・2本のプログラムを
サンプリングし、実際に移行 ~ テストした上で、移行作業全体の工数を見積もることをお薦めします。
Officeバージョンアップ †
Office97/2000 → 2003移行 †
株式会社 オデッセイ コミュニケーションズさんの
にVBA移行の情報が纏まっています。
- Office 97 / 2000 から Microsoft Office 2003 Editons への移行
Visual Basic for Applications 移行に関するチュートリアル
- Office 97 / 2000 からMicrosoft Office 2003 Editions への移行における、
Visual Basic for Applicationsの互換性と注意点
Office97/2000 → 2003移行時のVBAプログラムについては、概ねそのまま使えるようです。
Office2003 → 2007移行 †
Office2003 → 2007移行に関しても、VBAプログラムは、概ねそのまま使えるようです(下記、HPを参照)。
マクロや拡張機能のサポートは継続。
- VBA、マクロ
- COMアドイン
- スマートタグ
- 作業ウィンドウ
- ActiveXコントロール
ただし、VBAはOffice 2007の64ビット版には移植されないので注意が必要。
VBAの基本仕様は変わっていませんが、一部、検討課題もあるようです。
解決方法としては、1つ・1つ調べての対応となるようです。
Office2010移行 †
対応方法としては、上記と大差ないようです。
- TechNet? ライブラリ > Office 2010 リソース キット
Office 2010 のアプリケーション互換性評価ツール
- Office Environment Assessment Tool (OEAT)
- ISV アプリケーション互換性可視化プログラム (Application Compatibility Visibility Program)
- Microsoft Office 2010 Code Compatibility Inspector (OCCI)
VBAの基本仕様は変わっていませんが、一部、検討課題もあるようです。
解決方法としては、1つ・1つ調べての対応となるようです。
Office2010 64bit版 移行 †
32bit版のOfficeであれば64bitのOS上でも
WOW64上で32bitで動作させることができ、問題はそれほど多くありません。
64ビット版のOfficeでは、下記の点に注意が必要になります。
- ActiveXコントロールやCOMアドイン
ActiveXコントロールやCOMアドインは64ビット環境を想定して
作られてはいませんので、多くが64ビット版のOfficeでは動作しません。
- VBA7
64ビット版対応に伴いVBAも新しいバージョンであるVBA7になりました。
殆どの VBAコードは 64 ビット版fficeでもそのまま動作しますが、
64bit対応などで一部修正が必要になります。
- LongPtr?型とLongLong?型が追加(変換するための演算子、関数も追加)
演算子:CLngPtr?、CLngLng?、関数:VarPtr?、ObjPtr?、StrPtr?
- DeclareステートメントにPtrSafe?属性を追加
- VBA7とWin64という2つの条件付きコンパイル定数が追加
参考 †
- TechNet? ライブラリ > Office 2010 リソース キット
インストールする Office 2010 のエディションを選択するときの推奨事項は次のとおりです。
- 組織内のユーザーが、ActiveX コントロール、サードパーティ製アドイン、以前のバージョンの Office を基に構築された社内製ソリューション、Office との間に直接的なインターフェイスがある 32 ビット バージョンのプログラムなど、Office に対する既存の拡張機能に依存している場合は、32 ビットおよび 64 ビットのサポートされる Windows オペレーティング システムを実行しているコンピューターに 32 ビットの Office 2010 をインストールすることをお勧めします (既定のインストール)。
- 2 GB より大きい Excel スプレッドシートを使用している Excel の熟練ユーザーが組織内にいる場合は、64 ビット版の Office 2010 をインストールできます。また、社内のソリューション開発者がいる場合は、64 ビット版の Office 2010 で社内ソリューションをテストおよび更新できるように、開発者が 64 ビット版の Office 2010 にアクセスできるようにすることをお勧めします。
- 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 アドインの互換性
- アプリケーション プログラミング インターフェイスの互換性
- 条件付きコンパイル属性の使用
- まとめ、参考資料
Office2013移行 †
COMについて †
VBAは、VB6.0の言語仕様が踏襲されているため、COMに処理を依存しているところがありますが、
この VBAから呼び出されるCOM(ActiveX Control、ActiveX EXE、VB COM)の
- 「開発環境のサポート期間切れ」に起因する移行対象範囲の拡大や、
- 「当該プラットフォーム上でのサポート無し」のため、代替ライブラリのI/F変更発生
に起因する修正範囲拡大の可能性がありますので注意が必要です。
関連リンク †
- Office 2003 Editions リソース キット > ジャーナル