• ベストアンサー

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

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

(1) ネットワークドライブにChDriveする http://officetanaka.net/other/extra/tips15.htm をご参考にされては。

pegasusv
質問者

お礼

参考リンクを紹介頂き、有難うございました。 ChDriveステートメントは、カレントドライブの移動だけなんですね。 教えて!gooは、ときどき利用させて頂いていますが、また分からないことがあれば宜しくお願いします。

その他の回答 (1)

  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

>下記の通りvbaを組むと「引数は省略できません」のエラーになります >ChDir = WorkPath >ChDrive = WorkPath  "=" は省きましょう。  ChDrive WorkPath  ChDir WorkPath 質問の例では、ChDrive "z:\"  とネットワークドライブ名に"Z"が与えられているようですので 上記で上手くいくはずです。    

pegasusv
質問者

お礼

"=" を省くとうまくいきました。 疑問が解けました。 回答ありがとうございました。

関連するQ&A

  • VBAのGetOpenFilenameについて

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

  • エクセル2003 GetOpenFilenameで呼び出される階層について

    エクセル2003VBAでGetOpenFilenameを使って ファイルを選択してその後の処理に用いてます。 質問なのですが GetOpenFilenameで呼び出されてくるフォルダの階層 がカレントフォルダだったと何処かで読んだ記憶があったので カレントフォルダをchdirを持ちいて必要なフォルダを呼び出せるよう しているのですが、呼び出したい階層のフォルダがネットワークに つながっているPC(サーバー機)の場合、どうしても欲しい階層が 呼び出せないのですが、どのようにしたらよいのでしょうか? また、GetOpenFilenameで呼び出されるダイアログの動きなどを 追跡(調べる方法)などあるのでしょうか? ご教授のほど宜しくお願いいたします。

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

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

  • chdirがうまくできない

    はじめまして。hiro0777と申します。 perl初心者です。 お恥ずかしい内容なのですが、アドバイスいただければと思います。 環境はWindowsXP&Cygwinです。 質問内容:chdirがうまくできない。(ディレクトリ移動がうまくいかない) ・カレントディレクトリには、いくつかのサブディレクトリがあり、  サブディレクトリ名のみが書かれたファイル(dir.txt)がある。  dir.txtには「480iacrlc2」「480iacscan」といったディレクトリ名が1行ずつ記載。 ・dir.txtから1つずつサブディレクトリ名を読み取り、  そのディレクトリに移動し、ファイル処理をする。 #ここでコマンド引数にdir.txtを指定。 open(DIR, $ARGV[0]) || die "can't open $ARGV[0]\n"; while(1){ chomp($dir = <DIR>); #print "$dir\n"; chdir("$dir") or die "Cannot change directory '$dir'\n"; #system("pwd");  ###以降ファイル処理。 } 上記のようにやったのですが、うまくディレクトリを移動してくれません。 ちなみに以下のように直接ディレクトリ名を指定した場合はうまくいきました。 open(DIR, $ARGV[0]) || die "can't open $ARGV[0]\n"; while(1){ $dir = "480iacrlc2";#ファイル名を直接指定したら移動した。 chdir("$dir") or die "Cannot change directory '$dir'\n"; #system("pwd");  ###以降ファイル処理。 } テキストの扱いかたがいけないのかなぁと想像しているのですが。 どなたかご教授いただければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • EXCEL2000のVBAで、ディレクトリを指定するダイアログボックスを出したい

    VBA歴日も間もない者です。仕事上でVBAをいろいろいじくっています。 Excel2000VBAで、ディレクトリの指定をできるダイアログ画面はないのでしょうか? ユーザーにディレクトリを入力してもらいたいのですが、方法としては、1)直接手で打ってもらうか、2)ダイアログで指定できるようにするかにしたいのですが、あいにく Application.Dialogs(xlDialogOpen).Show Application.GetOpenFilename で「ファイルを開く」でディレクトリを割り出す方法しか分かりませんでした。 できれば、ディレクトリ指定のダイアログ画面をだしたいのですけど、他に方法があれば教えてください。よろしくお願いします。

  • カレントドライブを取得することはできないのですか?

    VBAでカレントドライブを取得することはできないのですか? MsgBox ChDrive をすると 「引数は省略できません」 になるのですが。

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

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

  • VBAで、作成したファイルの共有サーバーへの保存

    エクセルVBAでわからないことがあります。 社内でLANで結ばれた端末が何十台かあります。 各端末で作業したデータを共有サーバー内のフォルダーにテキストとして保存させようと思います。 サーバーのパスは仮に "\\FXHOGEHOGE\S999\DATA_Auto" とします。 マクロを書いたエクセルのBOOKは、各端末内に保存されてます。 jコードは概略以下のとおりです。 Sub test01() With Worksheets(Sheets.Count) MsgBox Right(.Range("A2").Value, 8) & "の保存開始。", vbInformation" .Name = "Data" & Right(.Range("A2").Value, 8) .Copy End With ChDrive "F" ChDir "F:\DATA_Auto" Application.Dialogs(xlDialogSaveAs).Show ARG1:="DNR.txt", ARG2:=3 ActiveWindow.Close (False) End Sub これでたいていは大丈夫なのですが、なかには共有サーバーのドライブをFではなく、GとかEとかに設定しているひとがいて、失敗します。   ChDrive "F"   ChDir "F:\DATA_Auto" のFを、それぞれの方に合わせて書き換えるか、あるいは社内でFに統一すればすむことですが、どちらも厄介です。 "\\FXHOGEHOGE\S999\DATA_Auto" というパスは変わらないので、これから、各端末で設定したドライブ名を取得するか、あるいは、Application.Dialogsで自動的にこのドライブとディレクトリを指定ことはできないものでしょうか?

  • 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 ---------------------------------------------------------------- あらかじめ開くディレクトリを、ネットワーク上のフォルダに指定したいのですが、どこにパスを書いたらいいのか、わかりません。 教えていただけますでしょうか。

  • VBScriptからEXCELのVBAコマンドを実行するには?

    VBScriptからEXCELのVBAコマンドを実行するにはどうしたら良いでしょう? 例) Set P_OBJEXCEL = CreateObject("Excel.Application") ※ここで EXCEL VBA の Chdir "N:\"を行いたい W_INFILE = P_OBJEXCEL.Application.GetOpenFilename("EXCEL(*csv),*.csv",,"入力ファイル") P_OBJEXCEL.Application.Quit 環境→EXCEL2000+Windows2000+IE6 目的→入力ファイルを取得ため、N:\配下をGetOpenFileNameにて開きたい ※EXCELのデフォルトパスを変更したくないため 何かヒントを御願いします

専門家に質問してみよう