目次
はじめに
今回は、VBAでカット(切り取り)とペースト(貼り付け)を正しく行う方法について勉強しました。
使用環境は以下のとおりです。
- OS: Windows 10 Pro
- バージョン: 20H2
背景
VBAを使って、Excel内でセル範囲をカットして別の位置にペーストする処理を作成しようとしましたが、
最初はうまく動作せず、原因を調べることになりました。
結論:基本的なカット&ペーストの書き方
以下のコードで、問題なくカットとペーストができるようになりました。
Range("A2:D4").Cut
ActiveSheet.Paste Destination:=Range("A10")
Application.CutCopyMode = False
コードの解説
Range("A2:D4").Cut
セル範囲「A2:D4」を切り取る操作です。ActiveSheet.Paste Destination:=Range("A10")
切り取った内容を、アクティブシートのA10セルから貼り付けます。Application.CutCopyMode = False
貼り付け後に、コピー・カットモードを解除して、クリップボードをクリアします。
(これにより、点滅枠が消えます。)
余談:「Exit For」について
今回の処理とは直接関係ありませんが、参考までに補足しておきます。
Exit For
は、Forループを途中で抜けるための命令です。- カット・ペーストとは無関係ですが、
ループ処理中に特定条件で抜けたいときによく使われます。
今回はカット・ペーストの操作がメインの話題だったため、Exit For
は使わなくても問題ありません。
まとめ
- セルをカットして貼り付けるには、
Cut
とPaste Destination:=
をセットで使う。 - ペースト後は、
Application.CutCopyMode = False
でモードを解除するとスマート。 Exit For
はループ処理用であり、今回のカット・ペースト操作には不要。
今回の学びを通じて、基本的なカット&ペースト処理を確実に押さえることができました。
今後もさらに、応用的なコピー&ペーストや範囲選択の操作についても理解を深めていきたいと考えています。