人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルのVBAの質問です。通常のファイルを開く画面を開いてエクセルファイルを開くことは可能なのでしょうか? ボタンを押すと特定のフォルダの特定の名前(like で指定可能)をもったファイル一覧がでてきて、それから選択して開くようにしたいのですが、そのときに、ファイル名をVBAで取得し、保存できるようにもしたいです。可能なのでしょうか?


●質問者: kaiketsu
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:それから エクセル ファイル フォルダ ボタン
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● HALSPECIAL
●30ポイント

こちらでいかがでしょう。

「ファイルを開く」ダイアログボックスを表示する(GetOpenFilenameメソッド)


2 ● pahoo
●35ポイント

ChDir, ChDrive メソッドと関数 GetOpenFileName を使った例を示します。

ファイル名の指定は like ではなく、ワイルドカードになります。下記の例では拡張子 csv のものに絞り込みます。

Dim infile As Variant
ChDir "C:\hogehoge\" 'フォルダを指定
ChDrive "C:" 'ドライブを指定
infile = Application.GetOpenFilename("CSVファイル (*.csv), *.csv", , , , True) 'ファイルダイアログを表示

3 ● SALINGER
●20ポイント

具体的にサンプルを作ってみました。

ボタンを押されたということで、コマンドボタンとしています。

適当な関数名にしてマクロの実行から実行してもいいです。

Excelのファイルのあるフォルダだけは実際の環境に変更してください。


実行すると、インプットボックスで検索文字列を聞いてきます。

*などのワイルドカードを使って入力すると、該当するファイルが一覧に出ます。


Private Sub CommandButton1_Click()
  'Excelのファイルがあるフォルダを指定してください。
 Const rootFolder As String = "C:\Documents and Settings\hogehoge\デスクトップ\test"
 Dim FilePath As String
 
 FilePath = InputBox("検索するファイル名を入力してください")
 
 If FilePath = "" Then Exit Sub
 
 FilePath = rootFolder & "\" & FilePath
 
 With Application.FileDialog(msoFileDialogFilePicker)
 .InitialFileName = FilePath
 
 .AllowMultiSelect = False
 .Filters.Add "Excelファイル", "*.xls;*.xlsx"
 
 If .Show = -1 Then
 Workbooks.Open Filename:=.SelectedItems(1)
 End If
 End With
End Sub

http://q.hatena.ne.jp/

◎質問者からの返答

サンプル作成、ありがとうございます。ただ、GetOpenFileName が今回の場合は簡単そうです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ