[624] マクロから SaveAs を行った場合の動作について
いっち [2021/05/23 06:54:14]
お世話になります。
マクロから SaveAs を行った場合の動作について、少し気になっているので
ご報告致します。
今回、Ver.2.3 β5で動作確認を行いましたが、下記の現象に気が付いたのは、
もう少し前のバージョンで、マクロを作成している時に気が付きました。
1. Cassavaを新規に開きます。
2. 何か書き込んでから、ファイル~名前を付けて保存
3. 普通に保存が出来ます。
※タイトルバーが、ファイルのフルパスになっています。
(フルパスになるように設定している場合)
────────────────────
上記と同じような事を、マクロで行ってみます。
1. Cassavaを新規に開きます。
2. 何か書き込んでから、下記のマクロで保存
//test.cms
// <条件> pathは、実在するパスにする。
path = "C:\\CassavaData\\";
// <条件> [1,1]には、ファイル名に設定できない文字は書かない。
filename = "test" + [1,1] + ".csv";
SaveAs(path + filename, "CSV");
/*
保存は実行されますが、タイトルバーが、Cassava Editor のままです。
*/
────────────────────
次に新規ファイルではなく、既に名前を付けて保存されているファイルに対して
マクロを実行してみます。
1. Cassavaを新規に開きます。
2. ファイル~開く で適当なファイルを開きます。
3. [1,1]に保存するファイル名を書いてから、下記のマクロで保存
//test.cms
// <条件> pathは、実在するパスにする。
path = "C:\\CassavaData\\";
// <条件> [1,1]には、ファイル名に設定できない文字は書かない。
filename = "test" + [1,1] + ".csv";
SaveAs(path + filename, "CSV");
/*
保存は実行されますが、タイトルバーが、保存する前のタイトルバー のままです。
但し、保存する前のタイトルバーにあるファイルが書き換えられている訳ではありません。
指定したファイル名で保存されています。
*/
Re: [624] マクロから SaveAs を行った場合の動作について
あすかぜ [2021/05/23 08:43:22]
ご指摘ありがとうございます。
いまのところ、SaveAs(filename, type) は一度限りの保存となっており、編集中のデータのファイル名は更新されません。
マクロ実行後に [ファイル(F)]-[上書き保存(S)] メニューを実行すると、元のファイル名で上書きされると思います。
SaveAs() で編集中のデータのファイル名も更新して [ファイル(F)]-[名前を付けて保存(A)...] メニューと動作を揃えるか、別途編集中のファイル名を更新する命令を導入するか、考えたいと思います。
Re: [624] マクロから SaveAs を行った場合の動作について
いっち [2021/05/23 10:50:47]
お返事ありがとうございます。
取り合えずは、下記のような方法で、[ファイル(F)]-[名前を付けて保存(A)...] メニューと動作を揃えています。
ですが、Cassavaマクロだけで完結出来た方が良い動作だと思っていました。
SaveAs(path + filename, "CSV");
Open(path + filename);
appname = "名前を付けて保存と同じように見せかけるように、SaveAsを行う前のファイルを閉じるAutoItで作ったexeファイル";
ShellOpen(appname,close_file);
Re: [624] マクロから SaveAs を行った場合の動作について
あすかぜ [2021/05/29 13:09:26]
そうですね、SaveAs() はメニューでの保存の動作と同じにしたほうが混乱が少ないかもしれません。
元のファイル名で作業を続けたい場合は Open() で元のファイルを開き直せばよさそうです。
β6でそのように挙動を変更してみました。
https://www.asukaze.net/soft/cassava/history/2_3dev.html
よろしくお願いします。
Re: [624] マクロから SaveAs を行った場合の動作について
いっち [2021/05/29 19:58:36]
β6の動作を確認致しました。
ありがとうございます。