[892] 保存時名について
まくろしょしんしゃ [2025/03/03 11:04:25]
いつもお世話になっております。
保存の時に
month = GetMonth();
if (month < 10) {
month = "0" + month;
}
day = GetDate();
if (day < 10) {
day = "0" + day;
}
SaveAs(GetFilePath().replaceAll(".csv", "")+"テスト_"+ GetYear() + month + day + ".csv");
でマクロでそのまま保存して終わりたいんですけど、
1日に複数回する事があって、上書きされてしまいます。
時間を入れるしか自分には対処法がないのですが…
連番入れるとか、元のファイル名があるか確認して数字入れるなど出来ますか?
Re: [892] 保存時名について
あすかぜ [2025/03/03 21:29:01]
Ver.2.3 で追加した FileExists() 関数を使うことで、ファイルがすでに存在するか確認することができます。
i = 1;
fileName = GetFilePath().replaceAll(".csv", "")+"テスト_"+ GetYear() + month + day + ".csv";
while (FileExists(fileName)) {
i++;
fileName = GetFilePath().replaceAll(".csv", "")+"テスト_"+ GetYear() + month + day + "_" + i + ".csv";
}
SaveAs(fileName);
のようにすれば、「テスト_yyyymmdd.csv」がすでにある場合に「テスト_yyyymmdd_2.csv」や「テスト_yyyymmdd_3.csv」が作られるようになると思います。
試してみてください。
Re: [892] 保存時名について
まくろしょしんしゃ [2025/03/04 11:46:47]
すごい。
できました!ありがとうございます。
この加工して保存マクロと加工して印刷して保存するマクロが2種類あるのですが、
同じCSVデータを読み込むのでバッチで一気に、と思っているのです。
データの保管場所は一緒なのですが、cassavaの保管場所の統一
あとは印刷含めバッチでできるんでしょうか…?
cassavaじゃないとこまで聞いてしまいすみません…。
Re: [892] 保存時名について
あすかぜ [2025/03/04 22:34:53]
印刷については、マクロでは Print(); 命令で印刷ダイアログを開くところまでしかできません。
すみませんが、印刷ダイアログが開いたら手作業で「印刷」ボタンを押してください。
「cassavaの保管場所の統一」は具体的にどのようなことが必要でしょうか?
SaveAs() に渡すファイル名の中で、保管場所のフォルダも指定してください。
バッチファイルから Cassava Editor を呼び出す場合、
Ver.2.6 以降では -m コマンドラインオプションで実行するマクロを指定できるようになりました。
C:\...\Cassava.exe -m "C:\...\a.cms" "C:\...\a.csv"
のようにすることで a.csv を開いて a.cms を実行できます。
参考になるでしょうか。