![]() |
#1
|
|||
|
|||
![]() Can someone point to a simple macro to copy a returned string to clipboard? Thanks! |
#2
|
||||
|
||||
![]()
For example:
Code:
Sub Demo() ' Note: A VBA reference to the MS Forms Object Library is required. See Tools|References in the VBE. Dim MyData As DataObject: Set MyData = New DataObject MyData.SetText "My Text String": MyData.PutInClipboard End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
![]()
Many thanks Paul! It works perfectly. But how do I recover in a macro the string I copied to the Clipboard? Cheers, RobiNew
|
#4
|
||||
|
||||
![]()
You would normally only be putting it into the clipboard to paste into a document or other application's file. What are you trying to achieve?
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#5
|
|||
|
|||
![]()
This is my macro:
Code:
Sub ColorRGBText() OPT = InputBox("Get Color[1], Apply Color[2]", "Color Management", "1") If OPT = 1 Then 'MsgBox Selection.Font.TextColor.RGB MyColor = Selection.Font.TextColor.RGB 'gets the color Dim MyData As DataObject: Set MyData = New DataObject MyData.SetText MyColor: MyData.PutInClipboard 'copies color code into ClBrd End If 'When the macro is restarted and option 2 selected, the color code should be applied to a different text selection If OPT = 2 Then Selection.Font.TextColor.RGB = MyColor End Sub |
#6
|
||||
|
||||
![]()
Surely the format painter would be more appropriate for this task? However, the following should work.
Code:
Sub ColorRGBText() Dim myColor As String Dim OPT As Long Dim MyData As DataObject Set MyData = New DataObject OPT = InputBox("Get Color[1], Apply Color[2]", "Color Management", "1") If OPT = 1 Then 'MsgBox Selection.Font.TextColor.RGB myColor = Selection.Font.TextColor 'gets the color` MyData.SetText myColor MyData.PutInClipboard 'copies color code into ClBrd End If 'When the macro is restarted and option 2 selected, the color code should be applied to a different text selection If OPT = 2 Then MyData.GetFromClipboard myColor = MyData.GetText(1) If myColor <> "" Then Selection.Font.TextColor = myColor Else MsgBox "Color has not been selected" End If End If End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#7
|
|||
|
|||
![]()
Unfortunately 'If OPT = 2 ...' does not apply any color, though the correct code appears in a MsgBox. Any idea? Thanks!
|
#8
|
||||
|
||||
![]()
It works here - did you select the text you want to re-colour before running the macro again?
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#9
|
|||
|
|||
![]()
I did, but it doesn't work (Windows 11). Thanks!
|
#10
|
|||
|
|||
![]()
Now it works! Thanks a lot. All the best, Robi
|
![]() |
Thread Tools | |
Display Modes | |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
robnun | Word VBA | 7 | 01-03-2025 12:52 PM |
![]() |
et_33 | Excel Programming | 8 | 10-11-2022 06:24 AM |
WORD MACRO COPY/PAST from clipboard | rachidlea | Word VBA | 0 | 11-16-2021 09:38 AM |
![]() |
eduzs | Word VBA | 3 | 05-17-2017 05:34 PM |
![]() |
g48dd | Excel | 3 | 07-16-2011 10:28 PM |