• ベストアンサー

VBAのGetOpenFilenameについて

VBAのGetOpenFilenameについての質問です。 このメソッドを使用すると一番初めは"マイドキュメント"内のdirが表示されるのですが、このデフォルトの指定を変更することは可能でしょうか。 一度ファイルを指定してやると、次回からはそのファイルのdirが はじめに開くので、できると思うのですが、方法がどこにも載ってません。 ご存知の方、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

ChDir / ChDrive で、ドライブ名とパスをセットしてからGetOpenFilenameを実行すると任意のフォルダを開く事が出来ます。 Dim WorkPath As String WorkPath = ActiveWorkbook.Path ChDir = WorkPath ChDrive = WorkPath

ESI0706
質問者

お礼

ありがとうございます!!! できました。ほんとうにありがとうございます!

その他の回答 (1)

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.2

EXCELのメニューで「ツール」⇒「オプション」⇒「全般タグ」 のカレントフォルダー名に設定値がデフォルトですが GetOpenFilenameで任意にパスを指定するには (1)ChDrive関数 ... ドライブ指定(ドライブ変更の必要がある場合) (2)ChDir関数 ... ディレクトリ指定 例 ChDrive "D:\" ChDir"D:\test"

関連するQ&A

  • VBAのGetOpenFilenameについて

    VBAのGetOpenFilenameについての質問です。 (1)このメソッドを使用すると一番初めは"マイドキュメント"内のdirが表示されるのですが、このデフォルトの指定をサーバーのディレクトリーに変更することは可能でしょうか。 ネットワークドライブをZ等に設定すると出来た(例参照)のですが、ネットワークドライブを設定せずに直接ディレクトリ指定出来ないでしょうか。 (例) ChDrive "z:\" ChDir"z:\test" (2)下記の通りvbaを組むと「引数は省略できません」のエラーになります。過去の質問url(http://oshiete1.goo.ne.jp/qa3023085.html)では出来ましたとお礼が書かれていましたが、理由が分からないので、教えて下さい。 Dim WorkPath As String WorkPath = ActiveWorkbook.Path ChDir = WorkPath ChDrive = WorkPath

  • VBAのダイアログ表示について

    VBA ダイアログ表示について 通常マイドキュメントのダイアログじゃなく直接下記の命令文で指定のフォルダをフォルダを開くダイアログを指定したつもりですが、なぜかマイドキュメントのダイアログが表示されます。 初心者でVBAの事良くわかっていません。 だれかアドバイスをお願いできないでしょうか? Dim Openfile As String Chdir "\Main\VBAdata" Openfile = Application.getOpenFilename("テキスト ファイル,*.txt")

  • GetOpenFileNameでファイル名でのフィルタ

    こんにちは, EXCEL2007 VBAを用いて ワークブックオープン時にファイル選択ダイアログを表示しています。  GetOpenFileName("日報ファイル(*.CSV),*.CSV",false) 上記は拡張子*.CSVでフィルタを掛けていますが、 ファイル名を絡めてフィルタを掛けることはできないのでしょうか? 日報ファイルなら*day.CSV,月報なら*month.CSVといった様に・・・  GetOpenFileName("日報ファイル(*day.CSV),*day.CSV",false) 上の様にすると*.*となりフィルタがかかりません。 ファイル選択ダイアログのファイル名のところに*day.CSVと手入力すれば フィルタがかかります。これをVBAから行えないでしょうか? よろしくお願いいたします。

  • Excel2007VBAファイルの表示について

    ●質問の主旨 開いたダイアロボックス内のファイルについてエクセルファイル(.xlsxのみ)を 対象としたいと考えています。 下記コードをどのように書き換えればよいでしょうか? ご存知の方ご教示願います。私はVBA初心者です ●質問の補足 作成した下記のコードでは 「実行時エラー1004:GetOpenFilenameメソッドに失敗しました」 と表示されます。 参考書2冊読んで全くその通りに引用していて、なぜエラー表示に なるのかよく分かりません。 またTarget = Application.GetOpenFilename("Excelブック,*,xlsx")を Target = Application.GetOpenFilename()にするとダイアロボックスは 表示され、その中にあるエクセルファイルは表示されます。 ●コード Sub Sample3() Dim Target As String Target = Application.GetOpenFilename("Excelブック,*,xlsx") If Target <> "False" Then Workbooks.Open Target Else MsgBox "キャンセルされました" End If End Sub

  • VBAを使用して自動的に保存する事について

     VBAでエクセルファイルを開き、そのエクセルファイルを上書き保存してファイルを自動的に閉じたいのですが…  参考書によると、Saveメソッドを使用するとよいと書いていますが、 上書き保存する場合は、一度も保存していないブックに対しては、Save asメソッドを使用するようにあります。  現在Save asメソッドを使用して保存は可能となりましたが、、、 保存する場所をVBAでファイルを開く際に指定した、Pathに指定し、 Msgボックスで保存する場所を表示させず、自動的に指定した場所にデータを上書き保存して、 作業を行ったエクセルシートを閉じたいのですが可能でしょうか??  エクセルシートを閉じる際は、VBAで作業を行うためのエクセルシートは開いたまま、作業のために開いたエクセルシートのみを閉じたいのです。  詳しい方がいらっしゃり、上記の事が可能であればご指導の程お願いします。  

  • VBAでユーザーにフォルダを指定させたい

     Win2000でEXCEL97を使ってます。  ExcelVBAでダイアログボックスなどによりユーザーにフォルダを指定させたいのです。  ファイルを指定させるには、GetOpenFileNameメソッドを使えば出来ることは分かったのですが、フォルダを指定させるような方法が分からないのです。  本で読んだところでは、Excel2002ではFileDialogプロパティで可能なようなのですが、Excel97では出来ないようで…  97でも可能な方法があればご教授下さい。  よろしくお願いします。

  • VBA ファイルを開くダイアログでの初期表示にファイルサーバーを指定

    こんにちは、Excelでマクロを組んでいます。ネットワークにファイルサーバーのNasを利用しているのですが、ファイルを開くダイアログで初期表示されるディレクトリをNasのフォルダに指定したいと思っています。 ChDir "\\Nas\最初に開きたいフォルダ" Application.GetOpenFilename で指定しても、なぜかローカルのマイドキュメントが開かれてしまいます。ローカルのマイドキュメントはカレントディレクトリに設定されていますが、例えば ChDir "C:\テストフォルダ名"としてから Application.GetOpenFilename とすると、きちんとテストフォルダ名が最初に表示されます。Nasへの接続の問題でしょうか?でも、Nasへログオンするにはユーザー名やパスワードを指定するはずなので、ログオンしていなかった場合はそれを聞いてくると思われるのですが・・・いかがでしょう?パスが間違っていたら、パスが間違っていますというエラーメッセージになると思いますし、、、よろしくお願いします。

  • VBAでファイルOPEN ダイアログを使用したいです

    現在、指定したファイルを開くVBAを書いているのですが、 ↓こんなの ----------------------------------------------------------- Dim vntFileName As Variant 'ファイルを開くダイアログを開きます vntFileName = _ Application.GetOpenFilename( _ FileFilter:="エクセルファイル(*.xls),*.xls" & _ ",CSVファイル(*.csv),*.csv" _ , FilterIndex:=1 _ , Title:="開けゴマ" _ , MultiSelect:=False _ ) 'ファイルが選択されているときは '選択したファイルをWorkbooks.Openメソッドで開きます If vntFileName <> False Then Workbooks.Open Filename:=vntFileName End If ---------------------------------------------------------------- あらかじめ開くディレクトリを、ネットワーク上のフォルダに指定したいのですが、どこにパスを書いたらいいのか、わかりません。 教えていただけますでしょうか。

  • VBAでのコンボボックスに関して

    エクセルのVBAで 選択されている項目を指定しているインデックスを取得 する .SelectedIndexのメソッドを使いたいのですが、 .を押してたときに表示されず、使用したとしてもメソッドが見つかりませんというエラーがでます。なぜなんでしょうか?

  • VisioのVBAでユーザにファイルを選択させる方法

    Visio 2003のVBAについてお伺いします。 ユーザに1または複数のファイルを選択させるためのダイアログを表示させたいのですが、どうやればよいのか分からなくて困っております。コマンドを教えて頂ければ幸いです。 ちなみに、VisioのVBAでは、ExcelにあるGetOpenFilenameコマンドがサポートされておりません。GetOpenFilenameコマンドと同様な機能を有するVisioのコマンドがあれば、それを教えてください。 よろしくお願い致します。

専門家に質問してみよう