回答遅くなりました。当方の閲覧タイミングがズレていました。
私の過去発言に関係しているもののようでした。
.Text = sが抜けているようですが、投稿時の単なるミスですか?
With CreateObject("Forms.TextBox.1")
.MultiLine = True
.Text = s '← これが抜けているようですが....
.SelStart = 0
.SelLength = .TextLength
.Copy
End With
なお、
>下記のコードだと、クリップボードから貼り付けができない状況です。
とありますが、これはクリップボードにコピーするものであって、
クリップボードから貼り付ける処理は含まれていないように思います。
文字列は取得できているのに、それをクリップボードにいったんコピーして、
さらに貼り付けないといけない理由は何でしょうか。
また、どのように貼り付ける予定なんですか?
差し支えなければ、教えてください。
----
【補足事項】
質問内容ではありませんが、唐突かつ ついでながら、インデントをきちんとつけることを推奨します。
例えば以下のように。
(当初の発言そのままの内容です。上の修正はしていません。
不要になるはずのDataObject周りの処理もそのままにしています。)
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim s As String
Dim rng As Range
Static cb As DataObject
If cb Is Nothing Then Set cb = New DataObject
With Me.ListBox1
If .ListIndex >= 0 Then
s = .List(.ListIndex, 0)
End If
End With
If s <> "" Then
Set rng = Me.ufFind(s)
If Not rng Is Nothing Then
rng.Select
cb.SetText rng.Value
With CreateObject("Forms.TextBox.1")
.MultiLine = True
.SelStart = 0
.SelLength = .TextLength
.Copy
End With
MsgBox ListBox1.Text & " をコピーしました"
End If
End If
End Sub