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

あすかぜ・ねっと 掲示板

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

参照URL:

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

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
ReRe: おおきさ / SPECIAL
Re: おおきさ / あすかぜ
Key :