【VBA】カットとペーストの処理がうまくいかないときの対処方法

目次

はじめに

今回は、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は使わなくても問題ありません。


まとめ

  • セルをカットして貼り付けるには、CutPaste Destination:=をセットで使う
  • ペースト後は、Application.CutCopyMode = Falseでモードを解除するとスマート。
  • Exit Forはループ処理用であり、今回のカット・ペースト操作には不要。

今回の学びを通じて、基本的なカット&ペースト処理を確実に押さえることができました
今後もさらに、応用的なコピー&ペーストや範囲選択の操作についても理解を深めていきたいと考えています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次