エクセルのクリップボードの挙動はちょっと独特で、「値だけ」とか「書式だけ」をコピペする事が出来、大変便利なのですが、純粋なテキストデータのみをコピーしたり貼り付けたりしたい時もあります。
僕の場合は、F2,Ctrl+Shift+Home,Ctrl+c,Escと一気に操作していたのですが、手数が多くて面倒くさいので、AutoHotKeyを使用して、上記操作をCtrl+Shift+cに割り振って作業していました。
しかし、AutoHotKeyのようなユーティリティを自由に導入できる現場ばかりではないので、同等機能をVBAで作り直す事にします。
以下のコードをPERSONAL.XLSの標準モジュールへ記述。
Private Sub Auto_Close()
With Application
.OnKey "^+c"
.OnKey "^+v"
End With
End Sub
Private Sub Auto_Open()
With Application
.OnKey "^+c", "CopyActiveCellValue"
.OnKey "^+v", "PasteSameValue"
End With
End Sub
Private Sub CopyActiveCellValue()
With Application
.SendKeys "{F2}"
.SendKeys "^{End}"
.SendKeys "^+{Home}"
.SendKeys "^c"
.SendKeys "{Esc}"
.StatusBar = "★アクティブセルの値をコピーしました。"
End With
End Sub
Private Sub PasteSameValue()
With Application
.SendKeys "{BS}"
.SendKeys "^v"
.SendKeys "^{Enter}"
.StatusBar = "★選択セル全てに対し、同じ値を貼り付けました。"
End With
End Sub
マクロでも、Sendkeysを使用した操作については、アンドゥが利くのがミソ。
0 件のコメント:
コメントを投稿