戻る

エクスプローラからドラッグドロップ

目的

エクスプローラからファイルをドラッグアンドドロップする機能をアプリケーションに組み込みます。

ポイント

VBのオブジェクトには OLEDragDrop イベントが備えられています。サンプルコードはフォームのイベントを使用した例です。

サンプルコード



Option Explicit

Private Sub Form_Load()

    ' OLEDropMode を手動にする(OLE ドロップ イベントが発生させます)
    Me.OLEDropMode = vbOLEDropManual
    
    Me.AutoRedraw = True 'フォームにPrintするため
    
    Print "エクスプローラからファイルをフォーム上にドロップしてください。"

End Sub

Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, _
                             Button As Integer, Shift As Integer, _
                             X As Single, Y As Single)
    
    Dim i As Integer
    
    ' ドロップされたデータがファイルであるかを判断する
    If Data.GetFormat(vbCFFiles) Then
    
        Me.Cls 'フォームにPrintするので初期化する
        
        ' 複数のファイルがドロップされるかもしれないのでループ処理をする
        For i = 1 To Data.Files.Count
        
            'ドロップされたファイルをフォームにPrintする
            Print Data.Files(i)
            
        Next i
        
    End If
    
End Sub

ソースのダウンロード