
No.9ベストアンサー
- 回答日時:
>私としてもNo6のような記述が出来ればベストだと思うのですが、同じフォ>ルダ内ではない場、エクセルのフォルダ内のフォルダも
>>Thisworkbook.Path &・・の変形で記述できるのでしょうか?
>あるいは、エクセルと同じフォルダの時のみ使える記述なのでしょうか?
一般論ですが
\abc\def\ghi\jkl\エクセル.xlsm があり、そのエクセル.xlsmのマクロを実行している前提になります。
\abc\def\ghi\jkl\XYZ ・・・①
とか
\abc\def\ghi\XYZ ・・・②
であれば、Thisworkbook.Path & "なんたらかんたら" の記述は使用可能です。
①は、保存先=Thisworkbook.Path & "\XYZ"
②は、保存先=Thisworkbook.Path & "\..\XYZ"
になります。
つまり、そのエクセル.xlsmを格納しているフォルダ(\abc\def\ghi\jkl)
と同系統のフォルダであれば、使用可能です。
\aaa\bbb とか c:\aaa とかの別系統、もしくは別ドライブでは、使用できません。
本当に何度もありがとうございました。
パスの&の後にファイル名が付いていたのでこれとフォルダのパス\xxの区別をどうやってつけるのかが分かりませんでした。
上のフォルダには\..で簡単に上がれたのに、下のフォルダに\.とやると、これがフォルダ名に含まれてしまうことから混乱してしまいました。
最初はこれにも気づかなかったり・・・
ご丁寧なご指導で何とかなりました。
感謝!!!
No.8
- 回答日時:
>エクセルは「¥リンク原紙」フォルダに入っています。
そのエクセルファイル内のマクロを実行していることが前提です。
Thisworkbook.Pathは、"\\ABC\DEF\2.チーム\2.分析②T\☆検査結果&成績表\ABC19\リンク原紙"になります。
よって
Filename:= Thisworkbook.Path & "\1.山本" & "\" & Range("E22") & " " & Range("A1") & " " & ".pdf
で目的の箇所に格納されませんでしょうか。
"\\ABC\DEF\2.チーム\2.分析②T\☆検査結果&成績表\ABC19\リンク原紙\1.山本"
のフォルダに格納されるはずです。
No.7
- 回答日時:
No5です。
>>いずれにしろ、カレントディレクトリを
>¥ABC¥DEFG¥HI¥JKL¥MNOPに変えた後は・・・
>の意味が良く分かりません。
CドライブかDドライブかネットワークドライブのどのケースであっても、
まずは、カレントディレクトリを¥ABC¥DEFG¥HI¥JKL¥MNOPに変える必要があり、変えた後で、相対ディレクトリの指定が可能になるという意味です。
>・前準備でカレントディレクトリーを変えることが必要で、
>カレントディレクトリーの変更は
>>WindowsのAPIか、WSH(Windows Scripting Host)を使います。
>と言うことならば当方には無理な気がします。
http://officetanaka.net/other/extra/tips15.htm
に書かれていることを、そのまま実行すれば、よいのでそれほど難しいということではありません。(フォルダ名はあなたの環境にあわせて変える必要があります)
私としては、今回は、相対パスを使う必要はなく、No6の方法がベストかと思います。
何度もお手数をかけてしまい申し訳ありません。
補足とご回答が入れ違いになったようです。
私としてもNo6のような記述が出来ればベストだと思うのですが、同じフォルダ内ではない場、エクセルのフォルダ内のフォルダも
>Thisworkbook.Path &・・の変形で記述できるのでしょうか?
あるいは、エクセルと同じフォルダの時のみ使える記述なのでしょうか?
No.6
- 回答日時:
No5です。
今回の場合、無理に相対パスを使用するメリットを感じられません。¥ABC¥DEFG¥HI¥JKL¥MNOP¥XYZ にファイルを保存したい場合は、
保存先 = Thisworkbook.Path & "\XYZ"
として、その保存先を指定すれば良いです。
(¥ABC¥DEFG¥HI¥JKL¥MNOP¥QRS.xlmsをオープンして、QRS.xlms内のマクロを実行していることが前提です)
No.5
- 回答日時:
¥ABC¥DEFG¥HI¥JKL¥MNOP¥QRS.xlms
は、Cドライブ上にあるのでしょうか。
(C:¥ABC¥DEFG¥HI¥JKL¥MNOP¥QRS.xlms)
それとも、DドライブとかFドライブとか、ネットワークドライブとかにあるのでしょうか。
Cドライブの場合は、chdir関数で¥ABC¥DEFG¥HI¥JKL¥MNOPにカレントディレクトリを変えることが可能ですが、Cドライブ以外だとこの方法ではできません。
その場合は、windowsAPIもしくはWSH(Windows Scripting Host)を使用して、カレントディレクトリを変えます。
http://officetanaka.net/other/extra/tips15.htm
いずれにしろ、カレントディレクトリを
¥ABC¥DEFG¥HI¥JKL¥MNOPに変えた後は、
¥ABC¥DEFG¥HI¥JKL¥MNOP¥XYZを(絶対パス)
.\XYZ (相対パス)又は
XYZ (相対パス)
で指定可能です。
No.4
- 回答日時:
何もしないと、カレントディレクトリーは、
メニューから、ファイル>オプション>保存のダイアログの、「既定のローカルファイルの保存場所」の場所です。普通はドキュメントフォルダー。
なので、相対パス指定はその場所からの相対になるので、絶対パス指定より面倒です。
VBAの入ったxlsmファイルからの相対位置で指定したいと言うことなら、まずはそのxlsmファイルの場所を ThisWorkbook.Path で求めます。
案1:chdir ThisWorkbook.Path で、カレントディレクトリーをそこ(\ABC\DEFG\HI\JKL\MNOP)に変更して、ファイル名を相対パスで"..\file1.xlsx"と書くと、"\ABC\DEFG\HI\JKL\file1.xlsx"の事になります。
カレントディレクトリーの変更は最初に一度だけやっておけばいいです。
カレントディレクトリーを変更すると、ファイル保存などのダイアログの初期場所が変わります。
変形として、chdir thisworkbook.path & "\.." と1つ上に chdir すると、
ファイル名は "file1.xlsx" と書けます。
案2:ThisWorkbook.Path & "..\file1.xlsx" というファイルを開くと、"\ABC\DEFG\HI\JKL\file1.xlsx" が開かれます。ThisWorkbook.Path & "..\file1.xlsx" の全体としては絶対パス指定をしていることになります。
カレントディレクトリーをかえたくない場合は、こちらで。
早々のご回答ありがとうございます。
昨夜寝る前に質問したのですが、夜中に質問内容に抜けがあることに気付いて朝一で補足しようとしたら既に4件もご回答いただいていて恐縮至極です。
教えて頂きたかったのは
現在絶対パスで
¥ABC¥DEFG¥HI¥JKL¥MNOP¥QRS.xlms
のエクセルで使用しているマクロ中で保存したいフォルダの絶対パスは
そのエクセルと同じフォルダ(¥ABC¥DEFG¥HI¥JKL¥MNOP)にある¥XYZ フォルダにシートのセルの値で自動保存するVBA中での相対パスの書き方です。
相対パスに不慣れなためやはり分かりにくいですが、理解してもらえますでしょうか?
言葉で書くと¥工場¥部¥課、の中にあるエクセル原紙のファイルを同じ(課の)フォルダ内の担当者のフォルダに保存する様にしたいのです。
No.3
- 回答日時:
カレントディレクトリが、どこかによって回答が異なります。
まず、カレントディレクトリがどこなのかを決めて、そのディレクトリを提示してから、質問されると、正確な回答が返るかと思います。
早々のご回答ありがとうございます。
昨夜寝る前に質問したのですが、夜中に質問内容に抜けがあることに気付いて朝一で補足しようとしたら既に4件もご回答いただいていて恐縮至極です。
教えて頂きたかったのは
現在絶対パスで
¥ABC¥DEFG¥HI¥JKL¥MNOP¥QRS.xlms
のエクセルで使用しているマクロ中で保存したいフォルダの絶対パスは
そのエクセルと同じフォルダ(¥ABC¥DEFG¥HI¥JKL¥MNOP)にある¥XYZ フォルダにシートのセルの値で自動保存するVBA中での相対パスの書き方です。
相対パスに不慣れなためやはり分かりにくいですが、理解してもらえますでしょうか?
言葉で書くと¥工場¥部¥課、の中にあるエクセル原紙のファイルを同じ(課の)フォルダ内の担当者のフォルダに保存する様にしたいのです。
No.2
- 回答日時:
こんばんは
ご質問の意味がよくわかりかねますが・・
カレントディレクトリが、「¥ABC¥DEFG¥HI」という前提で良いのでしょうか?
・・であるなら、相対パスは、
JKL¥MNOP¥QRS.xlms
となりますが、妙なスペースがあちこちにあるので実際には機能しないと思います。
あくまでも、ご質問文の例示に対する意味合いとしての回答と解釈してください。
早々のご回答ありがとうございます。
昨夜寝る前に質問したのですが、夜中に質問内容に抜けがあることに気付いて朝一で補足しようとしたら既に4件もご回答いただいていて恐縮至極です。
教えて頂きたかったのは
現在絶対パスで
¥ABC¥DEFG¥HI¥JKL¥MNOP¥QRS.xlms
のエクセルで使用しているマクロ中で保存したいフォルダの絶対パスは
そのエクセルと同じフォルダ(¥ABC¥DEFG¥HI¥JKL¥MNOP)にある¥XYZ フォルダにシートのセルの値で自動保存するVBA中での相対パスの書き方です。
相対パスに不慣れなためやはり分かりにくいですが、理解してもらえますでしょうか?
言葉で書くと¥工場¥部¥課、の中にあるエクセル原紙のファイルを同じ(課の)フォルダ内の担当者のフォルダに保存する様にしたいのです。
No.1
- 回答日時:
相対パスで「¥JKL」以降を記述する場合、通常は「..\..\¥JKL¥MNOP¥QRS.xlms」といった形になります。
ここで、「..\」は親ディレクトリを示し、各「¥」はフォルダの区切りを表しています。この例では、2つの親ディレクトリを上がってから、「¥JKL¥MNOP¥QRS.xlms」の場所にアクセスします。早々のご回答ありがとうございます。
昨夜寝る前に質問したのですが、夜中に質問内容に抜けがあることに気付いて朝一で補足しようとしたら既に4件もご回答いただいていて恐縮至極です。
教えて頂きたかったのは
現在絶対パスで
¥ABC¥DEFG¥HI¥JKL¥MNOP¥QRS.xlms
のエクセルで使用しているマクロ中で保存したいフォルダの絶対パスは
そのエクセルと同じフォルダ(¥ABC¥DEFG¥HI¥JKL¥MNOP)にある¥XYZ フォルダにシートのセルの値で自動保存するVBA中での相対パスの書き方です。
相対パスに不慣れなためやはり分かりにくいですが、理解してもらえますでしょうか?
言葉で書くと¥工場¥部¥課、の中にあるエクセル原紙のファイルを同じ(課の)フォルダ内の担当者のフォルダに保存する様にしたいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel 相対パス
Excel(エクセル)
-
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
他のエクセルを参照しているときに、相対パスで参照先を指定したい
Excel(エクセル)
-
-
4
同じフォルダへのハイパーリンクのパスがわかりません
Excel(エクセル)
-
5
エクセル;相対パスを絶対パスへ変換
Excel(エクセル)
-
6
EXcelのマクロで相対パスでファイルを開く
その他(Microsoft Office)
-
7
リンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)
Excel(エクセル)
-
8
エクセル関数>参照ファイル名をセルから呼び出す
Excel(エクセル)
-
9
同一フォルダ内で、エクセルを自動リンクさせる方法
Excel(エクセル)
-
10
同じフォルダに入っているファイルにリンクをはる方法
その他(ソフトウェア)
-
11
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
12
エクセルで他のファイルのセルを相対参照したい。
Excel(エクセル)
-
13
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
14
VLOOKUP関数で別ファイルを指定するとき、ファイルのパスを変数にしたい
Microsoft ASP
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
17
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
18
Excelに外部参照リンクが勝手に変換される
Excel(エクセル)
-
19
相対パスが使えない
Visual Basic(VBA)
-
20
エクセル マクロ 相対パスから画像を読み込みたいです。
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで相対パスの書き方を...
-
XML-DOMについて
-
ディレクトリパスの取得について
-
requireのファイルの置き場所
-
月の第一週とは
-
エクセルで毎月第2週日の水曜日...
-
週2回のペースって だいたい何...
-
[Excel] ある日の曜日が当月の"...
-
[C#]ListView一覧表示時の幅設...
-
毎○曜日って、使いますか?
-
VBA。複数のChangeイベントをま...
-
次のページへ
-
日本語問題 昨日は何曜日ですか...
-
リダイレクト
-
c言語の質問です。 ある月のカ...
-
カレンダープログラム、曜日の...
-
DBを10件毎に表示ページング...
-
確認画面
-
ユーザー定義の(aaa)
-
ファイルメーカー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで相対パスの書き方を...
-
C# FTPサーバ カレントディレ...
-
ディレクトリパスの取得について
-
上位階層のディレクトリパスを...
-
ローカルでは動くのに・・・ロ...
-
Perl の外部モジュールの利用方法
-
FORMのFILEでフォルダ(ディレ...
-
ネットサーフレスキュー[Web裏...
-
Pythonのstatsmodelsでカルマン...
-
ファイルをディレクトリ分配の...
-
シェルスクリプトの条件式の書き方
-
ActivePerlでのCGI設定
-
Windows漢字フォルダ名の扱い(...
-
URIとURLの違いは何ですか?
-
月の第一週とは
-
エクセルで毎月第2週日の水曜日...
-
毎○曜日って、使いますか?
-
週2回のペースって だいたい何...
-
[Excel] ある日の曜日が当月の"...
-
よくある 『 第○(1・2・3・4・...
おすすめ情報
早々のご回答ありがとうございます。
昨夜寝る前に質問したのですが、夜中に質問内容に抜けがあることに気付いて朝一で補足しようとしたら既に4件もご回答いただいていて恐縮至極です。
教えて頂きたかったのは
現在絶対パスで
¥ABC¥DEFG¥HI¥JKL¥MNOP¥QRS.xlms
のエクセルで使用しているマクロ中で保存したいフォルダの絶対パスは
そのエクセルと同じフォルダ(¥ABC¥DEFG¥HI¥JKL¥MNOP)にある¥XYZ フォルダにシートのセルの値で自動保存するVBA中での相対パスの書き方です。
相対パスに不慣れなためやはり分かりにくいですが、理解してもらえますでしょうか?
言葉で書くと¥工場¥部¥課、の中にあるエクセル原紙のファイルを同じ(課の)フォルダ内の担当者のフォルダに保存する様にしたいのです。
早々のご回答ありがとうございます。
質問が分かりにくくて済みません。
親フォルダ(¥ABC)はネットワークドライブ(会社のサーバー)です。
遠くない将来組織が変わると、このサーバー名が変わると思うので、今後はサーバーからの絶対パスではなく部署名からの相対パスでにしていこうと思っています。
>いずれにしろ、カレントディレクトリを
¥ABC¥DEFG¥HI¥JKL¥MNOPに変えた後は・・・
の意味が良く分かりません。
・前準備でカレントディレクトリーを変えることが必要で、
カレントディレクトリーの変更は
>WindowsのAPIか、WSH(Windows Scripting Host)を使います。
と言うことならば当方には無理な気がします。
もしそうなら一旦諦めて少しAPIかWSHを勉強してからの再質問?になりそうです。
早々のご回答でビックリの内容。
すぐに試してみたら何と!動いたのですが、実に惜しいィー
実際には保存フォルダはエクセルと同じフォルダ内ではなく、エクセルと同じフォルダ内のフォルダ(XYZ)なのです。
実際のコードは
Filename:="\\ABC\DEF\2.チーム\2.分析②T\☆検査結果&成績表\ABC19\リンク原紙\1.山本" & "\" & Range("E22") & " " & Range("A1") & " " & ".pdf
と言うコードで、エクセルは「¥リンク原紙」フォルダに入っています。
ご回答では原紙と同じフォルダ「¥リンク原紙」にPDFファイルが保存されました。
(コード中の”¥”は試行錯誤で削除しました)
このケースでも
>Thisworkbook.Path &・・・
が使えるのでしょうか?
ならば非常にありがたい!!!
何度か試行したのですが、やはりエクセルと同じフォルダにしか保存できません。
本当に何度も申し訳ないのですが何とかしたくお願いします。
パスで指定したい"\XYZ”の保存フォルダと同じフォルダの中にエクセルが保存されているのです。
フォルダAの中にエクセルと保存したい”XYZ”のフォルダが一緒に入っている状況です。
つまりエクセルからしたら1つ下のフォルダになる感じ(でもないですか?)
Thisworkbook.Path ではエクセルの保存されているフォルダになります。
この後に"\XYZ”と追加しても同じことになります。
最初の質問が悪くて状況が分かりにくかったのが混乱の原因だと思いますが、何とかお願いします。
途中で枝分かれしていることになるのでしょうか????
色々試してみているのですが、
ThisWorkbook.Pathがエクセルのフォルダでそのフォルダの中の「1.試験成績表」に保存したいのですが、
ThisWorkbook.Path & "\1.試験成績表" & Range("E22") & " " & Range("A1") & " " & ".pdf"
とすると1.試験成績表がファイル名になるのですが。
ThisWorkbook.Path & "\..\1.試験成績表" & Range("E22") & " " & Range("A1") & " " & ".pdf"
としたらエラーにはならないのですが保存ファイルが見つかりません。(少なくとも目的のフォルダには見当たらない)
それ以外はエラーになってしまいます。
フォルダの後に & 「ファイル名」があるので表記が少し違うのでしょうか?