投稿

2月 27, 2022の投稿を表示しています

Translate

Excel VBA クリップボードを使用しないコピー方法

イメージ
通常のコピーを使用しないセルのコピー方法 Copyを使用しないセル値のコピーや転記を行う方法 EXCELのVBA(マクロ)でクリップボードを使用した実装を行うと、マクロ実行中に他の作業で、コピー&ペースト等を行うと正しく動かなくなる場合がある。 もう一度マクロを実行し直すか、マクロ実行中は操作を控えるかの選択となるが、マクロを使用するユーザーが、マクロ作成者であれば回避も可能だが、そうではない他のユーザーが利用する場合、意図しない動作をしてしまう場合がある。 セルのコピーは、Copyメソッドを利用しない転記方法もある為、今回はクリップボードを使用しない方法で、セルの範囲をコピーする方法を紹介 この方法は、クリップボードが使用されてしまう。 Range("B3:D7").Copy Range("B10:Z13").PasteSpecial Paste:=xlPasteAll 実行結果 Value(XLRangeValueXmlSpreadsheet)を使用すると、クリップボードは使用されない Range("B10:D13").Value(xlRangeValueXMLSpreadsheet) = Range("B3:D7").Value(xlRangeValueXMLSpreadsheet) 実行結果 実際にクリップボードの使用、不使用を確認したい場合は、メモ帳などで、文字をコピー後、マクロを実行し、メモ帳で、貼り付け(ペースト)を行って、コピーした文字が貼り付けば、クリップボードが使用されているかいないかが確認出来る。 クリップボードの使用をマクロで実行している場合、貼付け時に、マクロでコピーした内容が貼り付けられたり、コピーしたクリップボードの内容がクリアーされている事が分かる。