[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リストボックスに入力した数字をトリガーに、その数字に該当するファイルを開くには』(けい)
すみません。
緊急でどなたか教えていただけませんでしょうか。
困っています。
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.