2012-05-09 9 views
4

MS Excelシート上のドラッグアンドドロップイベントを認識する方法はありますか?私が探しているのは、ファイルを(デスクトップから)MS Excelシートのセルにドラッグアンドドロップする(そしてそのファイルの名前をセルに挿入する)ときにイベントを聴くことができるようにすることです。MS Excelでのマウス(ドラッグ&ドロップ)イベントのリスニング

これは、Excelマクロでは何もできますか?

+0

、それが助けなら、私を知ってみましょうクリップボードに保存されます。この問題の解決策があるかどうかはわかりません。 –

+1

説明したようにDragDropイベントをトリガするには、このイベントがワークブックレベルで利用可能である必要があります。 DragDropイベントは、ワークブックまたはワークシートではなく、フォームの一部としてのみ使用できます。 – Ahmad

+0

実際に私はこれが*可能だと思ういくつかのリソースを実際に見ていますが、私は自分自身がそれを動作させるのに困っています。あなた自身で何か試しましたか? [MSDNからのリンク](http://msdn.microsoft.com/en-us/library/gg264583.aspx)の一例です。再び、私はそれを自分自身で動作させることはできませんが、これは非常に有望です。 – Gaffi

答えて

1

私は自分自身でタスクを実行する方法がわかりませんでしたが、誰かが既に問題に取り組んでいるようです。私はvbadud.blogspotから、このコードを引っ張っ:

' Place file on textbox to display filename. 
Private Sub TextBox1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) 

' Declare variable(s). 
Dim eventvar1 As Integer '* Files Counter 

' If an error occurs, go to the Error Handler. 
On Error GoTo Error_Handle1 
'Drag N' Drop Event Handler 
If Data.GetFormat(vbCFFiles) = True Then 
eventvar1 = Data.Files.Count 
    If eventvar1 = 1 Then 
     If InStr(1, LCase$(Data.Files(eventvar1)), ".xls") Then 
      txtExcel.Text = Data.Files(eventvar1) 
     End If 
    End If 
End If 

    ' Error Handler 
    Error_Handle1: 
     If Err <> 0 Then 
      Debug.Assert Err = 0 
      Err.Clear 
     End If 
    End Sub 

それがテキストボックスに入れている場合、コードは、ファイルの名前を掲載します。メソッド、関数、または別のサブルーチンを使用して、テキストボックスに配置されたテキストを使用することができます。そこから

Range("A2").End(xlDown).Offset(1, 0).Value = TextBox1.Text 

、その問題:例えば

、セルにテキストボックスからテキストをコピーするにSO articleを調べ、あなたのExcelシート上の範囲に入力するテキストをこのコードを使用することができますサブルーチンをオートメーションやその他のマクロのための別のマクロに結びつけるか、適切にドラッグ&ドロップするか、あるいはあなたに合ったものを選択します。

あなたがドラッグを登録し、アクションをドロップするようにユーザーフォームのオブジェクトの「BeforeDragOver」イベントを使用することができますが、それは解釈することができる唯一のデータがテキストである

〜JOL

+0

こんにちは、このコードの継ぎ目は、シートそのものではなく、いくつかのものをコントロールにドラッグすることに関するものです。役に立ったかもしれないが、縫い目はOPが求めていたものとは違う何かになるだろう... – Prokurors

関連する問題