pgbigorokuのブログ

プログラムの再利用できそうなコードをアップ

EXCEL VBA コピー&ペーストのショートカットキー割り当て

コピペするときにコントロールCとコントロールVで指が吊りませんか?
EXCELのショートカットキーを登録すると、ボタン一つでコピー ペーストが可能です。
わたしはPERSONAL.XLSBに登録して、全ワークブックに適応してます。

EXCEL起動時

    Application.OnKey "{F11}", "subToClipbord"
    Application.OnKey "{F12}", "subFromClipbord"

この関数をモジュールに入れておく。

Public Sub subFromClipbord()
    ActiveSheet.Paste
End Sub

Public Sub subToClipbord()
    Dim strToClipboard As String
    Dim strToClipboardOneLine As String
    Dim intForRow As Integer
    Dim intForCol As Integer
    Dim strDivide As String
        If Selection.Columns.Count = 1 Then
            '1列選択の場合
            For intForRow = 1 To Selection.Rows.Count
                strToClipboard = strToClipboard & vbCr & Selection.Cells(intForRow, 1)
            Next
        Else
            Select Case InputBox("文字区切り指定" _
                                & vbCr & "1: タブ" _
                                & vbCr & "2: 半角スペース" _
                                & vbCr & "3: コロン", Default:="1")

                Case "1":   '"タブ"
                    strDivide = vbTab
                Case "2":   '"半角スペース"
                    strDivide = " "
                Case "3":   '"コロン"
                    strDivide = ","
                Case Else
                    MsgBox "コピーを中止しました"
                    Exit Sub
            End Select
                                
            For intForRow = 1 To Selection.Rows.Count
                strToClipboardOneLine = ""
                For intForCol = 1 To Selection.Columns.Count
                    strToClipboardOneLine = strToClipboardOneLine & strDivide & Selection.Cells(intForRow, intForCol)
                Next
                strToClipboard = strToClipboard & vbCr & Mid(strToClipboardOneLine, 2)
            Next
        End If
        strToClipboard = Mid(strToClipboard, 2)
        nsubToClipbord strToClipboard
        
    

End Sub