dポイントプレゼントキャンペーン実施中!

エクスプローラーなどからファイルをドラッグ&ドロップしたら
そのファイルに対して何かしらの処理を行う、ということがEXCEL
で可能でしょうか。
ドロップを受けるのはシートでもフォーム上のコントロールでも
どちらでも良いです。
イベントをいろいろ探したのですがよく分かりませんでした。
EXCELは2002を使用しています。
よろしくお願いいたします。

A 回答 (1件)

こんにちは。



◆回答

VBA のコントロールはドラッグ&ドロップ操作をサポートしておりませんので、
基本的には代替案を探した方が良いでしょう。ただし、

  1. ListView などの OLE 系イベントのあるコントロールを使う
  2. API を使う

のいずれかの方法で実現できなくはありません。コモンコントロール(VB 等
に含まれる)の ListView コントロールなどが利用できる PC 環境ならば、
1. の方法、

http://oshiete1.goo.ne.jp/qa3523154.html

#3 Wendy02 さんのご回答が参考になります。

2. の方法は、非常に難易度が高くお勧めできませんが、もし調べるのでした
ら検索キーワードとしては、

  DragAcceptFiles
  DragQueryFile
  DragFinish

などの API です。

◆代替案

多少不便でも VBA の「ファイルを開く」ダイアログ

  Application.GetOpenFilename

の引数 MultiSelect を True で使うのが無難です。

Sub SampleProc()
  
  Dim vFileList As Variant
  Dim vFileName As Variant
  
  vFileList = Application.GetOpenFilename( _
        FileFilter:="全てのファイル(*.*),*.*", _
        MultiSelect:=True)
  If VarType(vFileList) = vbBoolean Then Exit Sub
  
  For Each vFileName In vFileList
    MsgBox vFileName
  Next

End Sub
    • good
    • 0
この回答へのお礼

現実的には難しそうですね。
その部分だけVBで作成する方向で考え直します。
しかしとても勉強になりました。
ご回答ありがとうございました。

お礼日時:2008/03/01 09:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています