このコードは1つのセルで機能しました(@Rickの回答に触発されましたが、Clipboard.SetDataObject(objData)
エラーが発生し、機能しなかったため、変更はほとんどありobjRange.PasteSpecial()
ません):
Private Sub Worksheet_Change2(ByVal Target As Range, ByVal sht As Worksheet)
Dim objData As DataObject 'Set a reference to MS Forms 2.0'
Dim sHTML As String
Dim sSelAdd As String
Application.EnableEvents = False
objData = New DataObject
sHTML = Target.Text
objData.SetText sHTML
objData.PutInClipboard
sht.PasteSpecial Format:="Unicode Text"
Application.EnableEvents = True
End Sub
Sub test()
Dim rng As Range
Set rng = ActiveSheet.Range("F15") 'cell to change'
Worksheet_Change2 rng, ActiveSheet
End Sub
詳細については、この投稿を参照してください
1つの特定のセルだけでなく、ワークシート全体で機能するように少し調整するのはそれほど難しいことではないと思います。エラーを防ぐために、このコードをラップするif条件を追加する必要があります。より詳しい情報