Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11494 / 13645 ツリー ←次へ | 前へ→

【15775】相対パス まさぼん 04/7/6(火) 14:56 質問[未読]
【15778】Re:相対パス つん 04/7/6(火) 15:15 回答[未読]
【15779】Re:相対パス まさぼん 04/7/6(火) 15:21 質問[未読]
【15781】Re:相対パス IROC 04/7/6(火) 15:34 回答[未読]
【15782】Re:相対パス まさぼん 04/7/6(火) 15:41 質問[未読]
【15784】Re:相対パス つん 04/7/6(火) 15:49 回答[未読]
【15785】Re:相対パス まさぼん 04/7/6(火) 16:02 質問[未読]
【15787】Re:相対パス IROC 04/7/6(火) 16:10 回答[未読]
【15790】Re:相対パス つん 04/7/6(火) 16:15 回答[未読]
【15792】Re:相対パス まさぼん 04/7/6(火) 16:24 お礼[未読]

【15775】相対パス
質問  まさぼん  - 04/7/6(火) 14:56 -

引用なし
パスワード
   「C:\Excelプログラム1\ファイルA」という構成のもと、
ファイルAを立ち上げたときに、
「C:\Excelプログラム2\ファイルB」
の、ファイルBを読み込んでいます。
現在は、絶対パスにより指定して、ファイルBを読み込んでいるのですが、
相対パスで指定したい場合、どのように指定すれば良いのでしょうか?

【15778】Re:相対パス
回答  つん E-MAIL  - 04/7/6(火) 15:15 -

引用なし
パスワード
   まさぼん さん、こんにちは

>「C:\Excelプログラム1\ファイルA」という構成のもと、
>ファイルAを立ち上げたときに、
>「C:\Excelプログラム2\ファイルB」
>の、ファイルBを読み込んでいます。
>現在は、絶対パスにより指定して、ファイルBを読み込んでいるのですが、
>相対パスで指定したい場合、どのように指定すれば良いのでしょうか?

「ThisWorkbook.Path」を使えばいいと思います〜

【15779】Re:相対パス
質問  まさぼん  - 04/7/6(火) 15:21 -

引用なし
パスワード
   ▼つん さん:
>まさぼん さん、こんにちは
>
>>「C:\Excelプログラム1\ファイルA」という構成のもと、
>>ファイルAを立ち上げたときに、
>>「C:\Excelプログラム2\ファイルB」
>>の、ファイルBを読み込んでいます。
>>現在は、絶対パスにより指定して、ファイルBを読み込んでいるのですが、
>>相対パスで指定したい場合、どのように指定すれば良いのでしょうか?
>
>「ThisWorkbook.Path」を使えばいいと思います〜


申し訳ないんですが、具体的にどうすれば良いのかお教え願います。。。

【15781】Re:相対パス
回答  IROC  - 04/7/6(火) 15:34 -

引用なし
パスワード
   msgbox ThisWorkbook.Path

で何が取得できるか試してみては如何でしょう?

【15782】Re:相対パス
質問  まさぼん  - 04/7/6(火) 15:41 -

引用なし
パスワード
   ▼IROC さん:
>msgbox ThisWorkbook.Path
>
>で何が取得できるか試してみては如何でしょう?

ありがとうございます。
これは絶対パスが取得できるのですよね?
これを基に相対パスを記述するにはどうしたら良いのかわからないのです。
確か、../aaa./とかを使用するとこまではわかるのですが…。

【15784】Re:相対パス
回答  つん E-MAIL  - 04/7/6(火) 15:49 -

引用なし
パスワード
   >これは絶対パスが取得できるのですよね?
やってみられた結果どうでした?

>これを基に相対パスを記述するにはどうしたら良いのかわからないのです。
>確か、../aaa./とかを使用するとこまではわかるのですが…。

え?なんか違うような・・・

C:\aaa\bbb\A.xls という形ですよね?
それで、Aファイルのパス「C:\aaa\bbb」がThisWorkbook.Pathで
取得出来ますよね?
それを使って、Bファイルを指定してやればいいと思います。

【15785】Re:相対パス
質問  まさぼん  - 04/7/6(火) 16:02 -

引用なし
パスワード
   ▼つん さん:
>>これは絶対パスが取得できるのですよね?
>やってみられた結果どうでした?
>
>>これを基に相対パスを記述するにはどうしたら良いのかわからないのです。
>>確か、../aaa./とかを使用するとこまではわかるのですが…。
>
>え?なんか違うような・・・
>
>C:\aaa\bbb\A.xls という形ですよね?
>それで、Aファイルのパス「C:\aaa\bbb」がThisWorkbook.Pathで
>取得出来ますよね?
>それを使って、Bファイルを指定してやればいいと思います。

"ThisWorkbook.Path"を使用した結果は、確かに"C:\aaa\bbb\A.xls"という形で返されました。しかし、これは絶対パスが取得させますよね?
これを基に、Bを読み込む相対パスの記述方法がわからないのです。。。

例えば、
「C:\aaa\bbb\A.xls」
「C:\aaa\ccc\B.txt」
が存在するとし、"A.xls"を立ち上げた際に、"A.xls"を基に相対パスを利用して"B.txt"を読み込みたい。と、いった具合です。
その場合、どのように記述すれば良いのでしょうか?
「A.xlsの2コ上のディレクトリのcccという名のファイルのB.txt」…日本語でいうとこんな感じですかね???

【15787】Re:相対パス
回答  IROC  - 04/7/6(火) 16:10 -

引用なし
パスワード
   >"ThisWorkbook.Path"を使用した結果は、
>確かに"C:\aaa\bbb\A.xls"という形で返されました。

C:\aaa\bbb
の間違いでは?


A.xls がマクロブックではないのですか?
ThisWorkbook.Path は
マクロブックの保存されているフォルダのパスを取得するものです。


>「C:\aaa\bbb\A.xls」
>「C:\aaa\ccc\B.txt」
>が存在するとし、"A.xls"を立ち上げた際に、"A.xls"を基に相対パスを利用し
>て"B.txt"を読み込みたい。と、いった具合です。

ThisWorkbook.Path & "\B.txt"
では?
 

【15790】Re:相対パス
回答  つん E-MAIL  - 04/7/6(火) 16:15 -

引用なし
パスワード
   ああ、すみません。
AとBは同じフォルダじゃなかったんですね。
で、AとBが入ってるフォルダが入ってるフォルダ(ややこしいな(^^;)
は同じフォルダなんですね。

では、ちょっとややこしくなりますね。

>例えば、
>「C:\aaa\bbb\A.xls」
>「C:\aaa\ccc\B.txt」

Sub test()

  Dim strPath As String
  Dim A As Long
  
  strPath = ThisWorkbook.Path
  
  A = InStrRev(strPath, "\")
  
  strPath = Left(strPath, A) & "ccc\B.txt"
  
  MsgBox strPath

End Sub

こんな感じでしょうか?

【15792】Re:相対パス
お礼  まさぼん  - 04/7/6(火) 16:24 -

引用なし
パスワード
   ありがとうございます。
絶対パスで指定するなら、その通りなんですが、
相対パスで指定する方法は、確か記述が違いましたよね?
(私の記憶違いでならばごめんなさい)

調べてみたところ、
絶対パスでは、「C:aaa\ccc\B.txt」
相対パスでは、「..\ccc\B.txt」
でいけそうです。

11494 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free