マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

本ページでは、Officeバージョンアップに伴うVBAの環境移行の作業範囲を扱います。

下記のように、旧OfficeのVBAプログラムも、概ねそのまま使えるようですが、
コンバージョン(手修正有りのコンバージョン移行)が必要となるケースもあるため、
移行の見積もりに関しては、プログラムの移行性評価作業として、1・2本のプログラムを
サンプリングし、実際に移行 ~ テストした上で、移行作業全体の工数を見積もることをお薦めします。

Accessバージョンアップ

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移行

対応方法としては、上記と大差ないようです。

  • Office > 2010 > 代表的なタスク > 互換性 > Microsoft Office 2010 ホワイト ペーパー
    http://technet.microsoft.com/ja-jp/office/ff945357.aspx
    • Office 2010 の構成と展開
    • ファイル フォーマット およびドキュメント レイアウトの互換性について
    • マクロ互換性について(2003以前のバージョンで作成したマクロを 2007 以降のバージョンで利用する場合の影響)

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? 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 のエディションを選択するときの推奨事項は次のとおりです。

  • 組織内のユーザーが、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変更発生

に起因する修正範囲拡大の可能性がありますので注意が必要です。

参考


Tags: :移行


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-23 (月) 18:19:14 (116d)