[あすかぜ・ねっと]あすかぜ・ねっと > 掲示板

あすかぜ・ねっと 掲示板

題名:
名前:
この名前を次回も使用する
削除キー(半角英数4桁):

参照URL:

Cassava Editor に関する質問・要望・バグ報告は Cassava Editor サポート掲示板 の利用をおすすめします。

Re: 分割保存するマクロ

Chi-papa [2025/12/17 (Wed) 16:30]

丁寧にご対応いただき、ありがとうございます。私が最初の回答の意味を理解していなかったために、お手数をおかけしてしまいました。おかげさまで、for文を使って、自分がやりたいと思っていた処理がマクロで実現できました。

Re: 分割保存するマクロ

あすかぜ [2025/12/16 (Tue) 22:24]

今のところ、エクポートマクロでは 1 つのファイルしか出力することができません。

12 日のマクロを使えば、マクロ内で Open(); と SaveAs(); を呼び出すことで自動的にファイルを開いて保存するので、
1 回のマクロ実行の操作で複数のファイルを出力できます。

念のため 12 日のマクロをファイルとしてアップロードしておきました。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs_20251212.cms
上のリンクを右クリックし、「名前を付けてリンクを保存」でダウンロードして、
Cassava Editor の「Macro」フォルダ内に置いてください。
対象のファイルを開いて [マクロ(M)]-[bbs_20251212] を実行すると、
元のファイル名に「_01」「_02」「_03」「_04」「_05」を追加したファイル名で
1000 行ずつ分割したデータを 1 回の操作で出力します。

試してみてください。

Re: 分割保存するマクロ

Chi-Papa [2025/12/16 (Tue) 15:04]

回答、ありがとうございました。
ファイルを1回開いただけで、操作したいのですが、エクポートマクロで、1回の動作で複数ファイルを出力することができるのでしょうか?

Re: 分割保存するマクロ

あすかぜ [2025/12/12 (Fri) 23:00]

次のように、5 回ファイルを開きなおし、不要な行を削除して保存するマクロを作れば分割保存になりそうです。


Save();
fileName = GetFilePath() + GetFileName();

DeleteRow(1001, Bottom);
SaveAs(fileName.replace(".csv", "_01.csv"));

Open(fileName);
DeleteRow(2001, Bottom);
DeleteRow(1, 1000);
SaveAs(fileName.replace(".csv", "_02.csv"));

Open(fileName);
DeleteRow(3001, Bottom);
DeleteRow(1, 2000);
SaveAs(fileName.replace(".csv", "_03.csv"));

Open(fileName);
DeleteRow(4001, Bottom);
DeleteRow(1, 3000);
SaveAs(fileName.replace(".csv", "_04.csv"));

Open(fileName);
DeleteRow(1, 4000);
SaveAs(fileName.replace(".csv", "_05.csv"));


このマクロで役に立つでしょうか。

分割保存するマクロ

Chi-Papa [2025/12/12 (Fri) 16:11]

こんにちは。毎日、使わせていただいており、ありがとうございます。
5000行あるデータを1000行ずつ分割して、ファイルに連番をつけて保存したいのですが、マクロで実現できますか?

no title

BEN [2025/7/18 (Fri) 12:41]

完璧に動作しました!!

仕組みも教えてくださり、今後の参考になります!

いつも誠にありがとうございます!

Re: 列のコピーと一段上にあげての貼付について

あすかぜ [2025/7/17 (Thu) 21:04]

データを切り取って貼り付ける、という手順をそのままマクロにするなら次のように記述できます。


l = int(InputBox("最初の列番号を入力してください"));
r = int(InputBox("最後の列番号を入力してください"));

Select(l, 2, r, Bottom);
Cut();
Select(l, 1, r, Bottom - 1);
Paste();


Select() で範囲を選択し、Cut(); で切り取り、Paste(); で貼り付けをしています。
コピーの命令は Copy(); ですが、コピーだと一番下の行のデータだけが残ってしまうのでこの例では切り取りにしています。

もしくは、for 文を使って 1 セルずつデータを移動する方針でもマクロを記述できます。


l = int(InputBox("最初の列番号を入力してください"));
r = int(InputBox("最後の列番号を入力してください"));

for (y = 1; y <= Bottom; y++) {
  for (x = l; x <= r; x++) {
    [x,y] = [x,y+1];
  }
}


[x,y](y 行 x 列のセル)に [x,y+1](y + 1 行 x 列のセル)のデータを設定することで、一段上にデータを移動できます。
どちらの方法でも動作すると思います。試してみてください。

列のコピーと一段上にあげての貼付について

BEN [2025/7/17 (Thu) 16:01]

こんにちは!いつも大変便利に利用させて頂いております。

111,222,,
,,333,444
,,aa,bb

というデータがあるのですが、
3列目の2行目~4列目の2行目からデータのある最下行までを
コピーして、一段上(3列目の1行目~4列目の1行目)に貼付をしたいのですが、
色々マクロを試したのですがうまくいきません。

また、列はそのCSVによりまちまちなので、
ダイヤログボックスで〇列目~〇列目と指定をしたいのですが、
失敗してしまい・・・

マクロの書き方をご教示いただけないでしょうか。。。


ReRe: おおきさ

SPECIAL [2025/5/15 (Thu) 08:38]

ありがとうございます。
一行目が画面いっぱいに表示されている状態で、スクロールしても2行目が見れない状態でした。
バージョンは最新のものでした。
どうやらフォントがとてもおおきなものになっていたようで、解決できました。
ありがとうございます。

Re: おおきさ

あすかぜ [2025/5/14 (Wed) 21:18]

Cassava Editor のウィンドウが画面をはみ出して大きく表示されてしまうということでしょうか。
Ver.2.2.5 以前ではそのような問題があったので、もし古いバージョンを使っているようでしたら最新版への更新をお願いします。

Cassava Editor の設定ファイルは
C:\Users\(ユーザ名)\AppData\Roaming\Asukaze\Cassava\Cassava.ini
にあります。
もし問題が解決しないようでしたら、このファイルを一度削除してみてください。
よろしくお願いします。

Key :