Excel

【Excel】VBAマクロでコピーモードの解除(範囲クリア:貼り付け後のセル範囲選択の解除:解放)する方法

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事では【Excel】VBAマクロでコピーモードの解除(範囲クリア:貼り付け後のセル範囲選択の解除:解放)する方法について解説していきます。

コピー解除のポイントとしては

Application.CutCopyMode = False

を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロでコピー貼り付け後のセル選択状態を解除する方法【Selection、Copy、PasteSpecial、Activate】

それではまず、VBAマクロでコピー貼り付け後のセル選択状態を解除する方法(シート1のA列をシート2にコピーし、コピー状態解除で終了)について解説していきます。

具体的にはシート1のA列をシート2にコピーし、コピー状態解除で終了する流れで処理していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub CopyA1karaLastmadeShiito2niPaste() 'シート1のA1からA列最終行までをシート2に貼り付け、選択範囲解除

    Worksheets("Sheet1").Activate 'シート1(Sheet1)をアクティブにする
    Dim saigonohyouji As Long 'シート1のA列の最終行を表すための変数を定義
    saigonohyouji = Cells(Rows.Count, 1).End(xlUp).Row 'A列の最終行を取得
    Range("A1:A" & saigonohyouji).Select 'A1からA列最終行までの範囲を選択
    Selection.Copy 'コピー

    Worksheets("Sheet2").Activate 'シート2(Sheet2)をアクティブにする
    Range("A1").Select 'A1セルをアクティブにする
    ActiveSheet.PasteSpecial 'シート2にコピーした範囲の値を貼り付ける

    Application.CutCopyMode = False 'コピーモードを解除する
    Range("A1").Select 'A1セルを選択し範囲選択を解除

End Sub

コードのAlt+F8を押し、マクロ選択画面でCopyA1karaLastmadeShiito2niPaste関数を実行します。

コード詳細の意味は以下の通りですね。

1. シート1(Sheet1)をアクティブにする
2. シート1のA列の最終行を取得し、saigonohyouji変数に格納する
3. A1からA列最終行までの範囲を選択し、コピーする
4. シート2(Sheet2)をアクティブにする
5. A1セルを選択し、コピーした範囲の値を貼り付ける
6. コピーモードを解除する
7. A1セルを選択し範囲選択を解除する

 

VBAマクロでコピー貼り付け後のセル選択状態を解除する方法【【UsedRange、Copy、PasteSpecial、Activate】

続いては、VBAマクロでコピー貼り付け後のセル選択状態を解除する方法その2として解説していきます。

こちらでは、シート1すべてをシート2にコピーし、コピー状態解除で終了するとコードにしています。

 

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub CopySheet1ZenbuShiito2niPaste() 'シート1のデータすべてをシート2にコピー

    Worksheets("Sheet1").Activate 'シート1(Sheet1)をアクティブにする
    Worksheets("Sheet1").UsedRange.Select 'シート1の使用範囲すべてを選択
    Selection.Copy 'コピー
    
    Worksheets("Sheet2").Activate 'シート2(Sheet2)をアクティブにする 
    Range("A1").Select 'シート2のA1セルを選択
    ActiveSheet.PasteSpecial 'シート2にコピーしたデータすべてを値で貼り付け
    
    Application.CutCopyMode = False 'コピーモードを解除する
    Range("A1").Select 'A1セルを選択し範囲選択を解除
    
End Sub

コードのAlt+F8を押し、マクロ選択画面でCopySheet1ZenbuShiito2niPaste関数を実行します。

このコードは以下のような処理を行います。

1. シート1をアクティブにする
2. シート1の使用範囲すべてを選択し、コピーする
3. シート2をアクティブにする
4. シート2のA1セルを選択する
5. シート2にコピーしたデータすべてを値で貼り付ける
6. コピーモードを解除する
7. A1セルを選択し範囲選択を解除する

以上が、【Excel】VBAマクロでコピーモードの解除(範囲クリア:貼り付け後のセル範囲選択の解除:解放)する方法の解説でした。
Selection、Copy、PasteSpecial、Activate、UsedRangeなどの関数を使用することで、コピー貼り付け後のセル選択状態を簡単に解除することができます。
ぜひ参考にして、作業効率化に役立ててみてくださいね。