• 締切済み

GetSaveAsFilenameで指定したパスだけが欲しい...

Excel-VBAについて、質問させて下さい。 ズバリ、質問のタイトルのとおりです。 ファイル名が重複した場合に、 保存ファイルに連番をつけたいと思っています。 その為に、ユーザが指定したディレクトリの ファイル名を取得したいのです。 (ファイル名はDir()で探すつもりです。) どなたかご存知の方がいらっしゃいましたら よろしくお願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

要は、最後の\を探してLEFT$で取り出すとかでもいいと思いますけど、 以下のようにもできます。 ------------------------- Dim f, p, a f = Application.GetSaveAsFilename a = Split(f, "\") '\で切り分ける a(UBound(a)) = "" '最後の要素の中身(ファイル名)を無くする p = Join(a, "\") 'もう一度結合するとパスだけが得られる

  • sam_inoue
  • ベストアンサー率47% (27/57)
回答No.1

「名前を付けて保存」ダイアログより、 「フォルダの参照」ダイアログを使った方が良いのではないですか。

関連するQ&A

  • パスの設定

    現在、 dirディレクトリ以下にユーザが入力した値のディレクトリを作り、そこに xxx.txt といったものを作成するプログラムをしています。 $dir = "./dir/" .$_POST["user_id"]; まではうまく動いています。 $file = $dir/xxx.txt がうまくいきません。 よろしくお願いします。

    • 締切済み
    • PHP
  • そのファイルのパスって取得できますか?

    ExcelでVBAを書いているんですが、たとえば、マイドキュメントとかのパスって、調べることが出来ますよね? そういった感じで、自身がどこにいるかも取得する方法ってあるのでしょうか? もちろん、ファイルを指定するようなダイアログを出せば出来るんですが、今回のは、そういったことじゃなくて、ユーザ側には何の操作もさせないことを考えています。 最終的にやりたいことは、同じディレクトリ内のファイルとの同期なんですが、やはり、ファイルの位置は、フルパスで指定しないとダメなんでしょうか。 どなたか、よろしくお願い致します。

  • CFileDialogを使用して、Pathを取得する方法

    お世話になっております。 CFileDialogクラスを使用して、Pathを取得する 方法がないでしょうか? 処理の流れでは、下記のような考えでいます。 (1)ダイアログ上の「参照」ボタンを押すと、ファイルダイアログが表示される。 (2)ファイルダイアログで、ディレクトリを移動し、任意のディレクトリまで移動したら、「開く」(または保存)を押下する。 (3)ファイルダイアログを閉じ、移動したPathを取得する。 です。 ファイルダイアログを開くところまでは出来ていますが、ファイル名を指定しないで、「開く」(または保存)を押しても、ファイルダイアログが閉じないので、困っています。 (3)のパス取得に関しては、既に処理の方法はわかっているので、(2)の部分(ファイル名を指定しないで、「開く」(または保存)でファイルダイアログを閉じる方法)をご教唆ください。 よろしくお願いします。

  • VBAでアカウント名を取得する方法

    VBAで処理したEXCELブックをデスクトップに自動保存しようとしています。VBAで現在作業中のユーザーアカウント名を自動で取得する方法を教えていただきたいのですが。 デスクトップ上にブックを保存するには、パスを記述すればよいのですが、現在PC毎にユーザーアカウントを設定しユーザー名が異なっています。 このため、PC毎にこのユーザー名をデスクトップへのパスに入れ込まなければなりません。毎回キーボードからこのユーザー名を入力する方法もありますが、自動的にユーザー名を取得し、正しいパスを指定する方法を検討しています。 どなたか、VBAでこのユーザー名を取得する方法が有れば教えていただきたいのですが。 よろしくお願いいたします。

  • コモンダイアローグでホルダーを指定したい

    vb6、pcはxpです。 ネットワーク経由で開いたり保存したりするためにCommondialogを使ってパスを取得したいのですが、必ずファイル名まで指定しないとダイアローグが閉じてくれません。ディレクトリの指定だけで終わるように出来るのでしょうか。

  • ファイルを指定して開きたいのですが…

    フォルダにいくつかのexcelシートがあります。 それをフォームを使ってそれぞれ呼び出すようにしたいのですが、 カレントディレクトリにあるはずなのに、3回に1回は「ファイルが見つかりません」となり、開けないことがあります。 そこで、先にカレントディレクトリを取得して、その取得した値をもとにフルパス指定するなどして、ファイルを開くようにしたいのですが、できそうでできません。 ちなみに、C:~などとあらかじめ設定してしまうと、コレを利用する複数のユーザがいるのですが、それぞれパスが異なっているために、個人用にパスを書き直さなければならなくなってしまうので、上記の方法を思いつきました。 最悪ネットワーク上に必要なデータ(フォルダ)を置き、そこを開くようにすれば?とも思ったのですが動作が重くなってしまうので、なるべくならやりたくありません。 どなたかお力を拝借できませんでしょうか。

  • ディレクトリ名を取得したい

    perlでディレクトリ名だけを取得したいのですが、 なかなかうまい方法が見つかりません。 ファイル名を取得する・・・というのは結構あるのですが、 ディレクトリ名だけ、というのがどうもわかりません。 ちなみにファイル名取得は以下のようにやっています。 my $md; opendir(DIR, 'q'); while (defined($dir = readdir(DIR))) { $md=substr($dir,0,6); } closedir(DIR); ディレクトリ名だけを取得・・・というのはどうやればよいのでしょうか。

    • ベストアンサー
    • Perl
  • Excelで、列のタイトル、離れた複数列を指定したい

    Excel2000ユーザーです。 列のタイトルで離れた複数列を指定したいのです。 (横長のテーブルで、一番左の項目名と一番右の結果の部分が表示されるような) 普通の設定ですと、隣り合った2列は指定できるようなのですが。 マクロやVBAを使わなければならないのでしょうか。 教えて下さい。

  • エクスプローラーで正式なパス名がでてきません

    Excel2019利用です。 デフォルトだと新規ファイルがOneDriveに保存されるようになっていますが、これを任意フォルダに指定する場合、 Excelのオプション➡保存➡規定でコンピューターに保存する という手順だそうですが、この設定画面の「既定のローカルファイルの保存場所」でファイルパスを指定しなければなりません。 たとえばエクスプローラーの「PC」の「ドキュメント」に保存したい場合でもパス名では 「PC>ドキュメント」 となっており、「C:user・・・」などのようなパス名がでてきません。 このような場合どうしたらよいのでしょう?

  • <ACCESS VBA -> EXCEL>getObjectしたEXCELファイルのシートを指定したい

    ACCESSのVBAマクロでEXCELファイルを指定してデータを取得しようとしています。 GetObject("C:\ファイル名.xls", "Excel.Sheet") でEXCELファイルを取得するまでは良いのですが、そのファイルのシートを指定する方法がわかりません。 基本かもしれませんが、ご教示をお願いします。

専門家に質問してみよう