dポイントプレゼントキャンペーン実施中!

こんにちは,
EXCEL2007 VBAを用いて
ワークブックオープン時にファイル選択ダイアログを表示しています。
 GetOpenFileName("日報ファイル(*.CSV),*.CSV",false)
上記は拡張子*.CSVでフィルタを掛けていますが、
ファイル名を絡めてフィルタを掛けることはできないのでしょうか?

日報ファイルなら*day.CSV,月報なら*month.CSVといった様に・・・
 GetOpenFileName("日報ファイル(*day.CSV),*day.CSV",false)
上の様にすると*.*となりフィルタがかかりません。
ファイル選択ダイアログのファイル名のところに*day.CSVと手入力すれば
フィルタがかかります。これをVBAから行えないでしょうか?

よろしくお願いいたします。

A 回答 (4件)

こんにちは。



私は、今の段階で、Excel 2007 をインストールすることできない(併用すると誤動作の恐れがあるから)ので、はっきりしたことは言えません。もう、これ以上は、実際に、2007 のVBA上で、やってみないとわかりません。

最終的にできるかどうかは、ファイルオープンダイアログで、手動で可能なのかどうか、ということに係っていると思うのです。これは、あくまでも、ファイルオープンダイアログだけの問題で、できなければ、UserForm など、他のものを使ったりして、それはそれで手段はあるのですが。
    • good
    • 0
この回答へのお礼

お世話になります。
結局、上手くいきませんでしたのでファイル種別ごとにフォルダを
分けました。
メニュー(リボン)の操作なども変わっているので悪戦苦闘です。
長々とお付き合い有難うございました。

お礼日時:2007/05/21 08:52

こんばんは。



ひとつだけ気になるのは、

Application.Dialogs(xlDialogOpen).Show("*day.csv")

一体、どのような、エラーが返るのでしょうか?

Dim Ret As Variant

Ret = Application.Dialogs(xlDialogOpen).Show("*day.csv")

ではダメでしょうか?

Dialogs Object (2007) ↓

参考URL:http://msdn2.microsoft.com/en-us/library/bb22374 …

この回答への補足

おつきあい&URLありがとうございます。

エラーが出るのではなく、オープンダイアログは表示されますがフィルターがセットされません。
"*day.csv"どころか"*.CSV","*.XLSなど通常のフィルタすらかかりませんでした。
(ダイアログのファイル種別はデフォルトで、ファイル名はブランクです)
戻り値を返す様にしても同様です。ちなみに実行時の戻り値は正常でした。(選択でTrue、キャンセルでFalse)
もう少し悩んでみます。

補足日時:2007/05/18 08:11
    • good
    • 0

こんばんは。



フィルタを掛けるだけでよいなら、以下のようにすればよいです。

 With Application.Dialogs(xlDialogOpen)
   .Show "*day.csv"
 End With
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
Application.Dialogs(xlDialogOpen).Show("*day.csv")
ためしてみましたがだめでした。
ちなみにExcel2000で試すとちゃんとファイル名のところにセットされました。

普通に
Application.Dialogs(xlDialogOpen).Show("*.csv")
でやってもうまくいかないので2007固有の問題かな?

お礼日時:2007/05/17 08:27

> GetOpenFileName("日報ファイル(*.CSV),*.CSV",false)


 GetOpenFileName("日報ファイル(*.CSV),*.CSV",,,,false)
ではないでしょうか。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
この関数のパラメータは省略しても大丈夫な様です。
Application.GetOpenFileName("日報ファイル(*day.CSV),*day.CSV",,,,false)
(Applocationが抜けてました。すみません。)
念のため試してみましたがやはりだめでした。

お礼日時:2007/05/16 19:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!