?
Solved

Excel - copy string to clipboard

Posted on 2014-03-30
7
Medium Priority
?
2,694 Views
Last Modified: 2014-03-30
Say, I don't want to copy from a cel - but rather the text in a string - its a password that needs to be put in the clipboard. I'm using a macro/VBA code.
0
Comment
Question by:shaunwingin
  • 3
  • 2
  • 2
7 Comments
 
LVL 28

Assisted Solution

by:MacroShadow
MacroShadow earned 1002 total points
ID: 39964832
1. Add a reference to the 'Microsoft Forms 2.0 Object Library'
2. This will put text in the clipboard:
Sub CopyToClipboard(strInput As String) 
    Dim oDataObject As New DataObject 
    oDataObject.SetText strInput 
    oDataObject.PutInClipboard 
End Sub 

Open in new window

Now
CopyToClipboard("Password")

Open in new window

Will put Password in the Windows clipboard
3. This will paste from Windows clipboard:
Sub PasteFromClipboard() 
    Dim oDataObject As New DataObject 
    oDataObject.GetFromClipboard 
    Selection = oDataObject.GetText 
End Sub 

Open in new window

0
 
LVL 24

Expert Comment

by:mankowitz
ID: 39964836
Try the following

Dim clipboard As MSForms.DataObject
Set clipboard = New MSForms.DataObject
clipboard.SetText "PASSWORD"
clipboard.PutInClipboard
0
 

Author Comment

by:shaunwingin
ID: 39964870
I don't see the reference listed for:
'Microsoft Forms 2.0 Object Library"
Using Excel 2013
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:shaunwingin
ID: 39964881
say I found it by searching for file mf20.dll
However the code doesn't work...
mankowitz
0
 
LVL 24

Assisted Solution

by:mankowitz
mankowitz earned 498 total points
ID: 39964931
The following worked for me

Private Sub button1_click()
With New MSForms.DataObject
    .SetText "password"
    .PutInClipboard
End With
End Sub

you have to make sure that msforms object is loaded. You can either add the reference as you did, or just add a userforms object to the page. You can always delete it. For example, from the Developer tab, click
Insert > more > select something like WINDOWS FORMS 2.0 TEXTBOX
0
 
LVL 28

Accepted Solution

by:
MacroShadow earned 1002 total points
ID: 39964989
Not sure why it's not working for you, works fine for me.

Perhaps Chip Pearson's article will help http://www.cpearson.com/excel/Clipboard.aspx
0
 

Author Comment

by:shaunwingin
ID: 39965015
seems I needed to change to clipboard1 as clipboard was reserved??
I also dimmed the text as a string but doubt this is needed.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
The viewer will learn how to create two correlated normally distributed random variables in Excel, use a normal distribution to simulate the return on different levels of investment in each of the two funds over a period of ten years, and, create a …
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question