Problem mit 32-Bit und 64-Bit beim Makro ausführen
25.10.2013 13:58:49
Jenny
DAnke und liebe Grüße
Jenny
Option Explicit
Private Declare Function GlobalLock Lib "kernel32.dll" ( _
ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32.dll" ( _
ByVal hMem As Long) As Long
Private Declare Function lstrlenA Lib "kernel32.dll" ( _
ByVal lpString As Long) As Long
Private Declare Function lstrcpyA Lib "kernel32.dll" ( _
ByVal lpString1 As Any, _
ByVal lpString2 As Any) As Long
Private Declare Function RegisterClipboardFormatA Lib "user32.dll" ( _
ByVal lpString As String) As Long
Private Declare Function IsClipboardFormatAvailable Lib "user32.dll" ( _
ByVal wFormat As Long) As Long
Private Declare Function OpenClipboard Lib "user32.dll" ( _
ByVal hWnd As Long) As Long
Private Declare Function GetClipboardData Lib "user32.dll" ( _
ByVal wFormat As Long) As Long
Private Declare Function CloseClipboard Lib "user32.dll" () As Long
Public Sub InsertHtml()
Dim strReturn As String
Dim avntTemp As Variant
Dim ialngIndex As Long, lngEmptyLines As Long
strReturn = HTMLFromClipboard
If strReturn vbNullString Then
avntTemp = Split(strReturn, vbNewLine)
For ialngIndex = LBound(avntTemp) To UBound(avntTemp)
If avntTemp(ialngIndex) = vbNullString Then _
lngEmptyLines = lngEmptyLines + 1
Next
Cells(1, 1).Resize(UBound(avntTemp) - lngEmptyLines, 1).Value = _
Application.Transpose(avntTemp)
Else
MsgBox "Kein HTML im Clipboard"
End If
End Sub
Private Function HTMLFromClipboard() As String
Dim lngFormatHTML As Long
Dim lngHandle As Long, lngPointer As Long
Dim strText As String
lngFormatHTML = RegisterClipboardFormatA("HTML Format")
If IsClipboardFormatAvailable(lngFormatHTML) Then
Call OpenClipboard(0&)
lngHandle = GetClipboardData(lngFormatHTML)
lngPointer = GlobalLock(lngHandle)
strText = Space$(lstrlenA(ByVal lngPointer))
Call lstrcpyA(strText, ByVal lngPointer)
Call GlobalUnlock(lngPointer)
Call CloseClipboard
HTMLFromClipboard = strText
End If
End Function