pgbigorokuのブログ

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

EXCEL VBA クリップボードからセルにPaste時に「実行時エラー1004:この操作は結合したセルには行えません。」を回避する

F12を押した場所に貼り付けます。

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


'
'   クリップボードからセルにPaste時に「実行時エラー1004:この操作は結合したセルには行えません。」を回避する
'https://pgbigoroku.hatenablog.com/entry/2022/08/23/171554
'2022/8/21
Public Sub subFromClipbord()
    Dim wkbNow As Workbook
    Dim wksNow As Worksheet
    Dim wkbNew As Workbook
    Dim strFromClipboard As String
    Dim strMageArea As String
    Dim strMageArea1つめのセル As String
    If nirngSelectionの1つ目のセル.MergeCells = True Then
        '結合されている場合
        Set wkbNow = ActiveWorkbook
        Set wksNow = ActiveSheet
        
        '現状の情報を保持
        strMageArea = Selection.Address
        strMageArea1つめのセル = nirngSelectionの1つ目のセル.Address
        Set wkbNew = Workbooks.Add()
        ActiveSheet.Paste
        strFromClipboard = wkbNew.Worksheets(1).Cells(1, 1)
        Range("A1").Delete
                
        'コピー先シートから、テンポラリシートへコピー(フォント等維持のため)
        wkbNow.Activate
        Selection.Copy
        wkbNew.Activate
        Range(strMageArea).Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        
        'いったん結合を外してコピー
        Selection.UnMerge
        wkbNew.Worksheets(1).Range(strMageArea1つめのセル) = strFromClipboard
        Range(strMageArea).Merge
        
        
        '貼り付け
        Range(strMageArea).Copy wksNow.Range(strMageArea)
        wkbNew.Close (False)
    Else
            ActiveSheet.Paste

    End If
End Sub