Excel VBA質問箱 IV

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

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


24161 / 76732 ←次へ | 前へ→

【57922】Re:同一ディレトリ、一つ前のディレトリのファイルを開く
発言  りん E-MAIL  - 08/9/21(日) 9:31 -

引用なし
パスワード
   yo460 さん、おはようございます。

>Unixやdosでは、dir .とかdir ..のようなドットで表現するコマンドがあったとおもいますがExcelのコードではどのように表現するのでしょうか?
>具体的な例をお示し願えればありがたいです。

".."はそのまま使えます。
Sub test()
  Dim s(1 To 2) As String
  s(1) = CurDir 'カレント
  MsgBox s(1), vbInformation, "START"
  '
  Do
   ChDir ".." 'CD ..と 同じ
   s(2) = CurDir 'カレント
   If s(1) = s(2) Then Exit Do
   MsgBox s(1) & " → " & s(2), vbInformation
   s(1) = s(2)
  Loop
  '
  MsgBox s(1), vbInformation, "END"
  Erase s
End Sub

実行結果はこんな感じ。
C:\Documents and Settings\●●●\My Documents → C:\Documents and Settings\●●●
C:\Documents and Settings\●●● → C:\Documents and Settings
C:\Documents and Settings → C:\

なので、マクロを書いたブックの入ったフォルダの、ひとつ上のフォルダに入ったTEST.XLSを開く場合は、
Sub test()
  Dim Ifile As String
  '
  Ifile = ThisWorkbook.Path 'ブックのパス(一度も保存していないブックだとエラー)
  If Right(Ifile, 1) <> "\" Then Ifile = Ifile & "\" '念のため確認
  Ifile = Ifile & "..\TEST.XLS" 'ひとつ上のフォルダのファイル
  '
  '開く前に有無チェック
  If Dir(Ifile) <> "" Then
   Application.Workbooks.Open Ifile
  Else
   MsgBox Ifile, vbExclamation, "ファイル名確認"
  End If
End Sub

0 hits

【57919】同一ディレトリ、一つ前のディレトリのファイルを開く yo460 08/9/21(日) 8:25 質問
【57921】Re:同一ディレトリ、一つ前のディレトリの... かみちゃん 08/9/21(日) 9:24 発言
【57922】Re:同一ディレトリ、一つ前のディレトリの... りん 08/9/21(日) 9:31 発言
【57925】Re:同一ディレトリ、一つ前のディレトリの... yo460 08/9/21(日) 13:49 お礼

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