• 締切済み

ファイル名の取得ができません

今VBAでユーザフォームにコンボボックス一個を作りました。本来なら コンボボックスの値を選択し、ボタンを押して対応するファイルを読み込んで必要の値を取得したいですが・・・  今問題になったのは読み込みファイルの名前は固定ではないですが、 うまくファイルの読み込みが出来ません。ファイル名は "作業実績入力表_2009年07月_【山田 太郎】.xls" ,"作業実績入力表_2009年08月_【坂本 太郎】.xls ", "作業実績入力表_2009年09月_【柳 太郎】.xls"いう風になっているけど 月の番号は変わるものですので 普通の方法で指定したら(BaseFileName As String = "作業実績入力表_2009年07月_【山田 太郎】")来月からソースまた変更しないといけない・・ 来月:"作業実績入力表_2009年08月_【山田 太郎】.xls" コンボボックス選択用値は山田 太郎、坂本 太郎、柳 太郎です。 山田 太郎を選択したら”作業実績入力表_2009年07月_【山田 太郎】.xls”のファイルを読み込みたい 名前をどう指定したらいいでしょうか?ご教授のほどよろしくお願いします。 Dim OrgPath As String, Fname As Variant Const BaseFileName As String = "作業実績入力表_2009年07月_【" Const BaseFileName1 As String = "】" Const myPath As String = "C:\Documents and Settings\rin-binyan.HALINC\My Documents\test\" OrgPath = ThisWorkbook.Path If Dir(myPath & BaseFileName & ComboBox2.Value & BaseFileName1 & ".xls") <> "" Then Workbooks.Open myPath & BaseFileName & ComboBox2.Value & BaseFileName1 & ".xls" Else Application.Dialogs(xlDialogOpen).Show (BaseFileName & "*.xls") End If LineEnd: ChDir OrgPath 固定のファイルしか指定できないですが・・・

みんなの回答

回答No.1

今は名前のコンボボックスしかないと思いますが、これに年と月のコンボボックスを追加して、名前と年月を指定してボタンを押す形にすればいいのではないでしょうか? ComboBox2が名前 (例)山田太郎とか ComboBox3が年 (例)2009年~必要なだけ。動的にリストを作成してもいいかも ComboBox4が月 (例)01月~12月 としておいて下記のようにファイル名を作成すればいけるのではと。 BaseFileName = "作業実績入力表_" & ComboBox3.Value & ComboBox4.Value & "_【" & ComboBox2.Value & "】.xls" BaseFileNameで.xlsまで格納してあるので、if dir(~の中は、 if dir(myPath & BaseFilename) <> "" then で。 年と月を分けないで「2009年07月」という感じでリストを作って ComboBoxで選択させるようにする案もあるかと。

dcdxj
質問者

お礼

そうですね、コンボボックスを追加すれば解決できるのですね、ご教授ありがとうございました。

関連するQ&A