VBA Application.CutCopyMode = False:これは何でしょうか?

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 4月 11, 2022

VBA Application.CutCopyMode = False

コピー&ペーストをしながらマクロを記録したことがある人は、次のような行を見たことがあるのではないでしょうか。

Application.CutCopyMode = False

この行は、クリップボードを「クリア」するコードです*。Excelのセルをコピーした場合、このコード行を実行すると、コピーしたセルの周りのアニメーションが削除されます。

vba application.cutcopymode=false

CutCopyModeは、Microsoft Officeプログラム(Excelなど)がカットモードかコピーモードかを示す、アプリケーションレベルのプロパティです。 コピー(またはカット)モードでは、Excelのクリップボードに何かが保存され、貼り付けることができます。

しかし、Application.CutCopyModeをTrueに設定する必要がある場面というのは、私はないだろうと考えています。

CutCopyMode = Falseにしない方法

VBAのコピー&ペーストのベストプラクティスを使用すれば、通常、Application CutCopyMode = Falseを設定する必要はありません。たとえば、次のコードでは、1行でセルをコピーして貼り付けるので、CutCopyModeをFalseに設定する必要はありません。

Sub CopyPaste_OneLine()
    Range("a1").Copy Range("b1")
End Sub

Application.CutCopyModeのステータスを取得する

Application.CutCopyModeのステータスを取得したい場合があります。クリップボードに何もないときに貼り付けようとすると、エラーが発生するのを防ぐためかもしれません。ステータスを取得するには、次のコードを使用します。

Sub Get_Application_CutCopyMode_Status()

    Select Case Application.CutCopyMode
        Case Is = xlCopy
            MsgBox "コピーモード"
        Case Is = xlCut
            MsgBox "カットモード"
        Case Is = False
            MsgBox "カットモードでもコピーモードでもない"
    Select End
    
End Sub

*Application.CutCopyModeは、Microsoft Officeアプリ(Excelなど)のクリップボードのみをクリアし、Windows OSのクリップボードはクリアされません。VBAを使用してWindowsのクリップボードをクリアする方法については、詳しくはリンクをクリックしてください。

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples