ListBox コントロール、DataObject オブジェクト、MouseMove イベント、StartDrag メソッド、SetText メソッドの例
次の例では、ドラッグされたテキストを格納するために DataObject を使用して、ある ListBox から別の ListBox へのドラッグ アンド ドロップ操作を示します。 このコード サンプルでは、MouseMove イベントの SetText メソッドと StartDrag メソッドを使用して、ドラッグ アンド ドロップ操作を実装します。
この例を使用するには、以下のサンプル コードをフォームの宣言部分にコピーします。 フォームに ListBox1 および ListBox2 という名前の 2 つの ListBox コントロールが含まれていることを確認します。 また、2 番目の ListBox には選択肢も追加する必要があります。
Private Sub ListBox2_BeforeDragOver(ByVal Cancel As _
MSForms.ReturnBoolean, ByVal Data As _
MSForms.DataObject, ByVal X As Single, _
ByVal Y As Single, ByVal DragState As Long, _
ByVal Effect As MSForms.ReturnEffect, _
ByVal Shift As Integer)
Cancel = True
Effect = 1
End Sub
Private Sub ListBox2_BeforeDropOrPaste(ByVal _
Cancel As MSForms.ReturnBoolean, _
ByVal Action As Long, ByVal Data As _
MSForms.DataObject, ByVal X As Single, _
ByVal Y As Single, ByVal Effect As _
MSForms.ReturnEffect, ByVal Shift As Integer)
Cancel = True
Effect = 1
ListBox2.AddItem Data.GetText
End Sub
Private Sub ListBox1_MouseMove(ByVal Button As _
Integer, ByVal Shift As Integer, ByVal X As _
Single, ByVal Y As Single)
Dim MyDataObject As DataObject
If Button = 1 Then
Set MyDataObject = New DataObject
Dim Effect As Integer
MyDataObject.SetText ListBox1.Value
Effect = MyDataObject.StartDrag
End If
End Sub
Private Sub UserForm_Initialize()
For i = 1 To 10
ListBox1.AddItem "Choice " _
& (ListBox1.ListCount + 1)
Next i
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。