Document.Save()の挙動について

  1. いつも「Mery」愛用させていただいています。

    そこで今回Mery3.3.1(x64)へアップデートを行ったのですが、
    旧バージョンとDocument.Save()の挙動が変わってしまっているようです。
    (すみません、アップデート前のバージョンは記録してません…)

    【旧バージョン】
    ファイルが存在した場合は上書き保存を行う。

    【ver 3.3.1】
    ファイルが存在してもファイル保存のダイアログが開く。
    (名前を付けて保存と同じ挙動?)

    また、もしマクロスクリプトの仕様が変わっていて、
    別に「上書き保存」用のメソッドがあるのであればお教えいただけると嬉しいです。

    環境: Windows 10 Home 64bit

     |  YOS G-spec  |  返信
  2. 補足です。

    言語にはVBScriptを使用していて、
    下記スクリプトを動かそうとしたときに過去と挙動が変わっていることに気づきました。

    https://www.haijin-boys.com/wiki/拡張子からコンソール実行

     |  YOS G-spec  |  返信
  3. さらに追記。

    ver 3.2.8 ⇒ NG
    ver 3.0.4 ⇒OK

    でした。

     |  YOS G-spec  |  返信
  4. Mery をご愛用いただきありがとうございます。

    document.Save() ですが、明示的に [名前を付けて保存] ダイアログを表示したいというケースに対応するため、Mery Ver 3 系で仕様変更があったようです。

    Save() の引数を省略した場合は、必ず [名前を付けて保存] ダイアログが表示される、というので正しい動作です。

    > 別に「上書き保存」用のメソッドがあるのであればお教えいただけると嬉しいです。

    引数で "ファイルのパス" を指定した場合は、そのファイルに保存されます。

    たとえば、現在編集中のファイルを上書き保存したい場合は、

    document.save(document.FullName);

    こんな感じになります。

    まだ整備中ではありますが、Ver 3 系のマクロリファレンスも公開しています。
    https://www.haijin-boys.com/wiki/マクロリファレンス:3

    https://www.haijin-boys.com/wiki/マクロリファレンス:3:Document_オブジェクト#Save_メソッド
    ↑ Ver 3 系の document.Save()

    Ver 2 系と Ver 3 系でできるだけマクロの互換性を保てるように、また、仕様変更があった場合は記載するように心がけてはいるのですが、変更ログから漏れてしまっていたようです。すみませんでした。

     |  Kuro  |  返信
  5. Document.Save()の挙動はマクロの仕様変更によるものだったのですね。

    了解いたしました。

    ver.3用のリファレンスもあったのですね。
    今後何かあったらこちらに目を通すようにします。

    ご対応いただきありがとうございました。

     |  YOS G-spec  |  返信
スポンサーリンク