[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リストボックスに入力した数字をトリガーに、その数字に該当するファイルを開くには』(けい)
すみません。
緊急でどなたか教えていただけませんでしょうか。
困っています。
A B C
1 0254 ファイル名1 2 0546 ファイル名2 3 7831 ファイル名3 4 7652 ファイル名4 5 4655 ファイル名5
いま現在、コンボボックスでB列のファイル名に合致する場合のみ、エクセルファイルを自動的に開くマクロになっています。
上記方法プラス下記の検索方法も追加できるでしょうか?
A列にある数字をList Boxに入力し、 Private Sub CommandButton1_Click()をクリックすると、
そのA列の数字に対応するBのエクセルファイルの名前に合致するファイルを自動的に開く方法をです。
Private Sub CommandButton1_Click()の構文はどうなりますでしょうか?
'ボタンが押されたら、ComboBox2の値で このマクロが書いてあるBookのフォルダ内をサブフォルダも含めて検索する '見つかれば そのBookを Openする Private Sub CommandButton1_Click() Dim ok As Long Dim myRootPath As String '検索を開始するRootフォルダ (時間はかかるが ドライブ(D:\)などでもよい ) Dim myFind As String Dim myBook As String * 513 If ComboBox2.ListIndex > -1 Then myRootPath = ThisWorkbook.Path & "\" myFind = ComboBox2.Value & ".xls" ok = SearchTreeForFile(myRootPath, myFind, myBook) If ok Then myFind = Left$(myBook, InStr(myBook, vbNullChar) - 1) Workbooks.Open myFind Else MsgBox "見つかりませんでした" End If End If End Sub
すみませんが宜しくおねがい致します。
SearchTreeForFileって、APIですか?だとしたら、宣言部も提示してください。
そうでないなら、そのコードも提示してください。 APIだとして・・・・、
リストボックスをListbox1というオブジェクト名だとすると・・・、
当該ユーザーフォームのモジュールに
'============================================== Option Explicit Private Declare Function SearchTreeForFile Lib "imagehlp.dll" _ (ByVal RootPath As String, ByVal InputPathName As String, _ ByVal OutputPathBuffer As String) As Long '================================================================ Private Sub UserForm_Initialize() Dim rng As Range With ThisWorkbook.Worksheets("sheet1") 'Sheet1に提示されたようなデータがあるとして・・・、 Set rng = .Range("a1", .Cells(.Rows.Count, "a").End(xlUp)).Resize(, 2) End With If rng.Cells(1).Value <> "" Then With ListBox1 .List() = rng.Value End With End If
End Sub '========================================================================= Private Sub CommandButton1_Click() Dim ok As Long Dim myRootPath As String '検索を開始するRootフォルダ (時間はかかるが ドライブ(D:\)などでもよい ) Dim myFind As String Dim myBook As String * 513 If ListBox1.ListIndex > -1 Then myRootPath = ThisWorkbook.Path & "\" With ListBox1 myFind = .List(.ListIndex, 1) & ".xls" End With ok = SearchTreeForFile(myRootPath, myFind, myBook) If ok Then myFind = Left$(myBook, InStr(myBook, vbNullChar) - 1) On Error Resume Next Workbooks.Open myFind 'ファイルI/Oの場合は、必ず、エラートラップを行なうこと If Err.Number <> 0 Then MsgBox Err.Description On Error GoTo 0 Else MsgBox "見つかりませんでした" End If End If End Sub
ichinose
> SearchTreeForFileって、APIですか
SearchTreeForFileは、以下を参考にされたのかな? [[20090805145721]]?『コマンドボタンでファイルを探しにいくには』(そい)
(とおりすがり)
>参考にされた と言うか、続きっぽいですね。
(HANA)
とおりすがりさん 誠に勝手ながら、リンクにタイトルを貼り付けさせて頂きました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.