• ベストアンサー

Excel VBA ファイル名をドラッグ&ドロップ

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

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.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

chiune
質問者

お礼

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

関連するQ&A

  • エクセルでドラッグアンドドロップで読み取り専用として開く

    Excel2000です。 エクスプローラ上にエクセルのファイル(.xls)が表示されているとします。 そのファイルをExcel上にドラッグアンドドロップしますと、ファイルが開かれます。 そのときに、エクスプローラ上のそのファイルのプロパティで「読み取り専用」になっているか否かにかかわらず、読み取り専用として開くにはどうすればよいですか? なお、エクセルのメニューの ファイル―開く で出てくるダイアログボックス(「ファイルを開く」)から、読み取り専用として開く方法はわかっています。 その「読み取り専用として開く」と同じことを、ドラッグアンドドロップだけでしたいのです。 OSはWindows98SEです。

  • 【VBA Excel】ドラッグアンドドロップをしたい

    (A) ExcelのVBAのListBox(か、類似のVBA機能)を使用してファイル(.csvファイルのデータ)の一覧を作成し、ドラッグアンドドロップ/D&Dで元エクセルシートに落としたセルを起点とし、選択したファイル内のデータを展開するデータを作ろうとしています。その際に分からないことが2点あります。 (A1) 他のワードファイルにはドドロップが有効なのですが、元エクセルファイルにはなぜかカーソルが例の進入禁止マーク(?)化してドロップできません。どうすれば元エクセルファイルにデータをドロップ出来るようになるのでしょうか? (A2) さらに、ドロップした後のセル("A3"や"B6"とか)の求め方が分かりません。 Private Sub ListBox1_MouseMove(ByVal Button As Integer, _  ByVal Shift As Integer, _  ByVal x As Single, _  ByVal y As Single) でx,yが座標を示すことは分かるのですが、ここからセルに変換するすべはあるのでしょうか? (B) また、Aで詰まったときに考えたのですが、ListBoxを表示させる代わり、に別シートに件のファイル一覧を展開して元シートと別シートを並べて表示させ(Windows.Arrange xlArrangeStyleVerticalを使用)、別シートから元シートにファイル名をドラッグアンドドロップしたときに同じ処理をするのもありかな、と思いついたのですが… (B1) Workbookの中の"SheetBeforeDoubleClick"や"Workbook_BeforeSave"が出ているリストの中にドラッグアンドドロップを示すようなものがないのですが、当該の処理は出来ないのでしょうか? -------------------- 当方、Excel2007のVBAを使用しています。 長文になりましたが、AまたはBのどちらかが解決する必要があります。断片的な答えでも大歓迎です。お願いします!

  • ドラッグ&ドロップについて

    初歩的なことを教えて下さい。 VB6を使用してドラッグ&ドロップの処理を作成したいのですが、どのように行ったら良いのか分かりません。 内容は、フォーム上にある一つのアイコン(ピクチャーボックスなど)を、同フォームの別の領域に、ドラッグ&ドロップで追加させて表示させる処理となります。また、追加されたアイコンをそれぞれコード上で判別もできるのでしょうか? 宜しくお願いします。

  • コントロールのドラック&ドロップ

    コンニチワ VBでフォームに配置したコントロールを ドラック可能にして フォーム上でドラック&ドロップを 検出してドラック前の位置から ドロップ後の位置にコントロールを 移動させたいのですが どうしてもずれたりして 上手く配置されません どなたか同じようなことをやったことがある方 ベストなやり方 わかる方教えて下さい よろしくお願いします

  • ドラッグ&ドロップについてです。(VB.NET)

    フォーム上に「PictureBox」コントロールを置いた状態で実行し、その「PictureBox」にデスクトップ等からファイルやフォルダをドラッグ、ドロップしまして、そのファイルやフォルダのパス名を取得するにはどうすればいいですか? そのプログラムのサンプルがあるサイトでもいいです。

  • DragEnterイベントについて(VS2008、ドラッグ&ドロップ)

    VisualStudio2008 C# で開発をしています。 ListViewにエクスプローラーからファイルをドラッグ&ドロップしようとしているのですが、うまくできません。 いろいろと調べて下記の3点を抑えればできるのかと思っていますが、思ったように動きません。 ListViewのAllowDrop=True; DragEnterイベントでe.Effect = DragDropEffects.Copy; DragDropイベントでDropした後の処理 きちんと記述しているつもりですが、DragEnterイベントが発生しません。 ちなみに、同じListViewの要素をドラッグ&ドロップするとDragEnterイベントは発生するので、あくまで外部(エクスプローラーなど)からドラッグされたものが受け付けないようです。 何が原因なのでしょうか? ほかに設定などあるのでしょうか?

  • ドラッグアンドドロップでファイルを読み込む方法を教えて下さい。

    一応いま手元にあるのはVB.NET2003なのですが、 これを使って複数のファイルから指定した行の内容をコピーして出力するプログラムを作りたいと考えています。 そのためには 1.ファイルをドラッグアンドドロップしてファイルの内容を読み込む 2.読み込んだ内容を順番に出力する機能が必要になります。 それでドラッグアンドドロップによりファイルを読み込む記述を探しているのですが、 http://www.atmarkit.co.jp/fdotnet/dotnettips/676dragdrop/dragdrop.html ここにあるように、 1.フォームのAllowDropプロパティをTrueに設定する 2.フォームのDragEnterイベント・ハンドラを記述する 3.フォームのDragDropイベント・ハンドラを記述する ということを順番に行えば良いわけですが、1番はもちろん分かりますが、2番と3番がどうして良いのか分かりません。 本屋で一通りVBの本を見てみたのですが、どの本にもドラッグアンドドロップについて書かれてある本はありませんでした。 検索などすると、確かにDragEnter、DragDropに関する記述は見つかるのですが、難しくてどうしても理解出来ません。 どなたか易しく教えて頂けないでしょうか? よろしくお願い致します。

  • OLEドラッグ&ドロップ

    アプリケーションからエクスプローラにファイルをドラッグ&ドロップできるソースで、できるだけ簡単なものを教えて下さい。

  • Excelのファイルが開かなくなってしまいました。

    Excelのファイルが開かなくなってしまいました。 ある日突然、Excelのファイルであるxlsファイルを開くとExcelは起動するのですが肝心のファイルが開かなくなってしまいました。 どんなファイルでも同じで、ファイルの内容を見たい場合はシートが表示されていないExcelにドラッグアンドドロップしてファイルを見るしかありません。なぜこのような状況になったのか見当もつかないのですが、どうすれば問題を解決できるかお教えください。

  • ファイルのドラッグ&ドロップが出来なくなった

    ファイルのドラッグ&ドロップが出来なくなった とあるシステムにログインするため、IE8をアンインストールしてIE6にダウングレードしました (そのシステムがIE8に対応していないため)。 ところがその後、Windows上でファイルのドラッグ&ドロップが出来なくなってしまいました。 他のシステムやソフトは正常に動作していますし、マウスを交換してウィルス検索も行いましたが、 ダメでした。 どなたか原因のわかる方いらしゃいませんか? Windows XP SP3を使用しています。 よろしくお願いします。

専門家に質問してみよう