スポンサーリンク
Excelのコピーはちょっと不便
Excelで、セルを<Ctrl+C>とかで単にコピーすると、メモ帳などに貼付けするとき強制的に改行込みで貼付けられる。
そんで、コピーしたデータは、ちょっと何か他の操作をしただけで消えてしまう(これについては、Excel2016からは解消されてるけど)。
例えばブラウザの中の文字列をコピーしたときなんかはそんなことにならない(改行が含まれたコピーにならない、コピーしたデータは次のコピーまで消えたりしない)んだから、もっとこう、Excelのセルのデータのコピーでも同様にできないかというのを、多くの人が思っているだろう。
こんな簡単に見えることなのだが、Excelの標準機能ではちと達成できない。
マクロのソースコード・解説
そこで私は、次のようなマクロを、Excelの個人用マクロブックに追加して使っている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub copyOnlyValue() ‘値のみクリップボードへ Dim var As Variant var = ActiveCell.Value Call put_Clipboard(var) End Sub Sub put_Clipboard(var As Variant) ‘値をクリップボードに格納 Dim CB As New DataObject With CB .SetText var ‘変数のデータをDataObjectに格納する .PutInClipboard ‘DataObjectのデータをクリップボードに格納する End With End Sub |
1つ注意として、このマクロを実行する前には、参照設定で「Microsoft Forms 2.0 Object Library」というものを有効にしておかないといけない。
それについては、個人用マクロブックの初期設定の記事で述べている。
これに「var」という変数を渡して、それをクリップボード(コピーしたデータが納められる場所)に納めるというもの。
「Sub copyOnlyValue」でアクティブセルの値を渡して、それをクリップボードに納めているということ。
まあ短いし、何となくやらんとすることは分かっていただけると思う。
そしてこれは、本当によく使うコマンドのはずなので、ショートカットキーで使えるようにすべき。
コピー<Ctrl+C>のコマンドに一番近い<Ctrl+Shift+C>で良いかと思う。
ショートカットキーの設定方法は、こちら。
スポンサーリンク