ドラッグアンドドロップでEXCELシートの一覧を取得する 【注意書き】●VB.NET を使っているものとします。●動作環境は、Windows XX を使用しているとします。●Microsoft Excel X.X Object Library を使用しています。.NET でも、ドラッグアンドドロップでEXCELシートの一覧を取得することが可能です。この機能を使えば、簡単に、指定するEXCELシートをアプリケーション側から選択操作させたりする場合などに活用できます。フォームに次の様なコードを記述します-----------VB.NETコーディングここから-------------------1.メニューバーの中に、「プロジェクト」→「参照の追加」 から、Microsoft Excel X.X Object Libraryを1つ選んで、 「OK」を押します。 この操作で、参照が追加されます。 ※バージョンは、X.Xの部分が数字です。 Microsoft Excel 9.0 Object Library、 Microsoft Excel 10.0 Object Libraryなど2.フォームに、リストボックスコントロール を配置します。 下記は、デフォルトのオブジェクトの名前と配置を示しています。 ┏━━━━━━━━━━━━┓ ┃ListBox1 ┃ ┃ ┃ ┃ ┃ ┗━━━━━━━━━━━━┛3.フォームをダブルクリックして、 フォームロードイベントのコード編集を開始して、 次のコードを記述します。 'Excelのアプリケーションを操作するために、変数定義しています Dim MjstrPicPath As String Dim MjobjExcel As Excel.Application Private Sub Form1_DragDrop(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles MyBase.DragDrop MjstrPicPath = e.Data.GetData(DataFormats.FileDrop)(0) If Dir(MjstrPicPath) <> "" Then 'OPN_FILE(MjstrPicPath) 'オブジェクトのインスタンス作成 MjobjExcel = CType(CreateObject("Excel.Application"), _ Excel.Application) 'ワークブックのオープン MjobjExcel.Workbooks.Open(MjstrPicPath, , True) 'ファイルからシートの一覧を取得します Call GET_EXCEL_SEETLIST(MjobjExcel) MjobjExcel.Workbooks.Close() MjobjExcel.Quit() MjobjExcel = Nothing End If End Sub Private Sub Form1_DragEnter(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles MyBase.DragEnter '関連連づけの確認をしています。 'この場合、ドラッグアンドドロップの形式であるかどうか? If e.Data.GetDataPresent(DataFormats.FileDrop) Then 'ドロップ効果を取得 e.Effect = DragDropEffects.Copy Else 'ドロップ効果を破棄 e.Effect = DragDropEffects.None End If End Sub Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Me.AllowDrop = True End Sub Sub GET_EXCEL_SEETLIST(ByVal PiobjEXCEL As Object) Dim intCnt As Integer For intCnt = 1 To PiobjEXCEL.Application.Worksheets.Count If PiobjEXCEL.Application.Worksheets(intCnt).Visible = _ True Then 'ファイルの一覧に追加 ListBox1.Items.Add( _ PiobjEXCEL.Application.Worksheets(intCnt).Name) End If Next End Sub4.ビルドして実行します。5.EXCELファイル(拡張子 .XLS )を フォームにドラッグアンドドロップでドロップします。6.フォームに表示された リストボックスに、ドラッグアンドドロップした EXCElファイルに存在するシートの一覧が表示されます。-----------VB.NETコーディングここまで-------------------本サンプルでは、エクスプローラ等から、ファイルのドラッグアンドドロップの操作でファイルのパスを受け取っています。EXCELファイルの識別チェックは行っておりません。
Copyright(c)2001-2004 Ai Net Makoto 記事・情報の無断転載を禁止します。