Results 1 to 7 of 7

Thread: Solved: paste from clipboard and start find a word

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Solved: paste from clipboard and start find a word

    Hallo I need help.
    I have edited a dictionary and for search word into this dictionary, I when the file Dictionary.doc start it must copy from clipboard a word, paste the same word in Dictionary.doc and begin to search in Dictionary.doc the data pasted from clipboard.
    I edited this macro:
    File Dictionary.doc in VBA ThisDocument I have stored:
    [vba]
    Private Sub Document_Open()
    Application.Run MacroName:="ClipBoard_GetData"
    End Sub
    [/vba]
    In a new module of file Dictionary.doc I have stored:
    [vba]
    Declare Function OpenClipboard Lib "User32" (ByVal hwnd As Long) _
    As Long
    Declare Function CloseClipboard Lib "User32" () As Long
    Declare Function GetClipboardData Lib "User32" (ByVal wFormat As _
    Long) As Long
    Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags&, ByVal _
    dwBytes As Long) As Long
    Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) _
    As Long
    Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) _
    As Long
    Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) _
    As Long
    Declare Function lstrcpy Lib "kernel32" (ByVal lpString1 As Any, _
    ByVal lpString2 As Any) As Long

    Public Const GHND = &H42
    Public Const CF_TEXT = 1
    Public Const MAXSIZE = 4096

    Function ClipBoard_GetData()
    Dim hClipMemory As Long
    Dim lpClipMemory As Long
    Dim MyString As String
    Dim RetVal As Long

    If OpenClipboard(0&) = 0 Then
    MsgBox "Cannot open Clipboard. Another app. may have it open"
    Exit Function
    End If

    ' Obtain the handle to the global memory
    ' block that is referencing the text.
    hClipMemory = GetClipboardData(CF_TEXT)
    If IsNull(hClipMemory) Then
    MsgBox "Could not allocate memory"
    Goto OutOfHere
    End If

    ' Lock Clipboard memory so we can reference
    ' the actual data string.
    lpClipMemory = GlobalLock(hClipMemory)

    If Not IsNull(lpClipMemory) Then
    MyString = Space$(MAXSIZE)
    RetVal = lstrcpy(MyString, lpClipMemory)
    RetVal = GlobalUnlock(hClipMemory)

    ' Peel off the null terminating character.
    MyString = Mid(MyString, 1, InStr(1, MyString, Chr$(0), 0) - 1)
    Else
    MsgBox "Could not lock memory to copy string from."
    End If

    OutOfHere:

    RetVal = CloseClipboard()
    ClipBoard_GetData = MyString

    End Function
    [/vba]
    I must insert in Dictionary.doc also a macro that in automatic paste the clipboard data and begin to search the pasted clipboard data in the file Dictionary.doc.
    I am not be able to make this macro please give me an help.
    pasquale
    Last edited by Pasquale; 11-30-2006 at 12:37 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •