あすかぜ [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 列のセル)のデータを設定することで、一段上にデータを移動できます。どちらの方法でも動作すると思います。試してみてください。