FAQ
ArcPy (ArcMap): マップ ドキュメント (.mxd) を下位バージョンに変更する

ナレッジ番号:3124 | 登録日:2023/05/29 | 更新日:2024/11/21

説明

上位のバージョンで作成されたマップ ドキュメントファイルは、下位のバージョンで開くことができません。その場合は [ファイル] → [コピーを保存] を使用して、下位バージョンのマップ ドキュメントに保存をする必要があります。
この操作を複数のファイルに対して行う場合、ArcPy で処理を行うことで反復処理を行うことができます。以下はマップ ドキュメントが保存されたフォルダー (ワークスペース) とバージョンを指定して、同一のフォルダーに別名で保存するためのサンプルコードおよびツールです。

ご利用方法

ダウンロード

以下の ツールボックスをダウンロードしてご利用ください。このツールは Python スクリプトで作成されています。
  ans7039.zip

使用手順

  1. ArcMap を起動し、カタログ ウィンドウにてダウンロードしたツールボックス内にある [MXDバージョン変更] ダブルクリックします。ツールが起動します。
  2. 以下のようにパラメーターを設定し、[OK] ボタンをクリックします。
    MXDの保存場所、ワークスペース : 処理対象のマップ ドキュメントが格納されたフォルダー
    バージョン : マップ ドキュメントのバージョン

注意事項

  • 本ツールはサンプル プログラムであり、ツールの動作を保証するものではありません。ツールの操作方法やソースコード、実行時のエラーなどに関するお問い合わせは、サポート対象外となります。また、 新規バージョンに対応したツールを継続的に提供することを保証するものでもないこともあらかじめご了承ください。なお、ツールを利用して生じたいかなる損害についても弊社では責任を負いかねますことをご了承ください。 ArcPy サイト パッケージに関するプログラム固有のご質問につきましては開発者サポートにて承ります。
  • お使いのArcGISのバージョンより新しいバージョンで作成されたマップ ドキュメントに対して処理を行うことはできません。マップ ドキュメント ファイルは作成されますが、それは指定バージョンで作成されたものではありません。

Python ソース コード

# coding:cp932
#
#-------------------------------------------------------------------------------
# Purpose:      MXDのバージョンを変更します
#
# Author:        ESRI Japan
#-------------------------------------------------------------------------------

import arcpy
import os

# パラメーター
in_workspace = arcpy.GetParameterAsText(0)
version = arcpy.GetParameterAsText(1)

# ワークスペースの割り当て
arcpy.env.workspace = in_workspace

if version ==u"10.5":
    name="105_"
elif version == u"10.4":
    name="104_"
elif version == u"10.3":
    name="103_"
elif version == u"10.1":
    name="101_"
elif version == u"10.0":
    name="100_"
else:
    name=""

try:
# MXDファイルの保存 (反復)
    for files in arcpy.ListFiles("*.mxd"):
        mxd = arcpy.mapping.MapDocument(os.path.join(in_workspace, files))
        # ファイル名の先頭にバージョンを付けて出力
        mxd.saveACopy(os.path.join(in_workspace, name + files ),version)
except Exception as e:
    arcpy.AddError(e)
    raise arcpy.ExecuteError

技術情報

  • ヘルプ: マップの保存
  • ヘルプ: ArcPy MapDocument クラス
    ※ SaveACopy メソッドを使用してMXDを保存すると、用紙の向きが継承されず、[通常使用するプリンター] の用紙の向きが設定されます。そのため、あらかじめ [通常使用するプリンター] の設定を確認・設定した後に、こちらのツールを実行してください。

関連する質問

メタデータ

種類

製品

バージョン