<p>EDIT - MSForms is deprecated, so you should no longer use my answer. Instead use this answer: <a href="https://stackoverflow.com/a/60896244/692098">https://stackoverflow.com/a/60896244/692098</a></p>
<p>I leave my original answer here only for reference:</p>
<pre><code class="lang-auto">Sub CopyText(Text As String)
'VBA Macro using late binding to copy text to clipboard.
'By Justin Kay, 8/15/2014
Dim MSForms_DataObject As Object
Set MSForms_DataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
MSForms_DataObject.SetText Text
MSForms_DataObject.PutInClipboard
Set MSForms_DataObject = Nothing
End Sub
</code></pre>
<p>Usage:</p>
<pre><code class="lang-auto">Sub CopySelection()
CopyText Selection.Text
End Sub
</code></pre>