ドラッグアンドドロップでEXCELシートの一覧を取得する
|
|
.NET (VB)の内容
|
【注意書き】 ●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 Sub
4.ビルドして実行します。
5.EXCELファイル(拡張子 .XLS )を フォームにドラッグアンドドロップでドロップします。
6.フォームに表示された リストボックスに、ドラッグアンドドロップした EXCElファイルに存在するシートの一覧が表示されます。
-----------VB.NETコーディングここまで-------------------
本サンプルでは、エクスプローラ等から、ファイルのドラッグアンドドロップ の操作でファイルのパスを受け取っています。
EXCELファイルの識別チェックは行っておりません。
|
http://anetm.com/dev/d.cgi?SC=DTDTL&o=OVV
Copyright(c)2001-2006 Ai Net Makoto 記事・情報の無断転載を禁止します。
|