Excel VBA質問箱 IV

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

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


13188 / 13644 ツリー ←次へ | 前へ→

【3321】マクロを用いて開いたファイルのサブフォルダのパスのみ抽出したいのですが... ntomo 03/1/31(金) 14:20 質問
【3323】Re:マクロを用いて開いたファイルのサブフ... ポンタ 03/1/31(金) 14:58 回答
【3324】Re:マクロを用いて開いたファイルのサブフ... ntomo 03/1/31(金) 15:27 質問
【3327】Re:マクロを用いて開いたファイルのサブフ... Jaka 03/1/31(金) 16:14 回答
【3328】Re:マクロを用いて開いたファイルのサブフ... ntomo 03/1/31(金) 16:32 お礼
【3329】Re:マクロを用いて開いたファイルのサブフ... ポンタ 03/1/31(金) 16:32 発言
【3332】Re:マクロを用いて開いたファイルのサブフ... ichinose 03/1/31(金) 20:55 発言
【3364】Re:マクロを用いて開いたファイルのサブフ... ntomo 03/2/3(月) 9:57 お礼
【6635】改訂版 Jaka 03/7/16(水) 9:13 発言

【3321】マクロを用いて開いたファイルのサブフォ...
質問  ntomo  - 03/1/31(金) 14:20 -

引用なし
パスワード
   こんにちは
マクロを用いて同一ファイル内のファイルのみ(複数)をひらくのですが・・・・
そのファイルの入ってるフォルダ名がのみを取得したいのです・・・・(贅沢ですよね・・・

C:\Documents and Settings\userA\デスクトップ\030127\1..exl

などのファイルを開いたときの
020127
という部分を取得したいのです・・・・・。

まだまだVBAをはじめたばかりなのでとってもつまらないことなのかもしれませんが
よろしくおねがいします

【3323】Re:マクロを用いて開いたファイルのサブフ...
回答  ポンタ  - 03/1/31(金) 14:58 -

引用なし
パスワード
   これでどうですか?

ブック名は適当に書き換えてください。

Sub test()
  Dim MyPath As String
  MyPath = Workbooks("Book1.xls").Path
  MsgBox (Right(MyPath, InStr(1, StrReverse(MyPath), "\") - 1))
End Sub

【3324】Re:マクロを用いて開いたファイルのサブフ...
質問  ntomo  - 03/1/31(金) 15:27 -

引用なし
パスワード
   ▼ポンタ さんレスありがとうございます

実行したところ
Subまたはfunctionが設定されていませんとでます。
ちなみに・・・・
そのときに黄色く反転していたのは
  MsgBox (Right(MyPath, InStr(1, StrReverse(MyPath), "\") - 1))
の StrReverse
です。

>  MsgBox (Right(MyPath, InStr(1, StrReverse(MyPath), "\") - 1))
後よろしければこの行の説明等もいただけるとありがたいのですが・・・
細かい定義のところがよくわかってません・・・・。
勉強不足ですみません。><。。

【3327】Re:マクロを用いて開いたファイルのサブフ...
回答  Jaka  - 03/1/31(金) 16:14 -

引用なし
パスワード
   こんにちは。
なぜ、
C:\Documents and Settings\userA\デスクトップ\030127\1..exl で、

>020127
>という部分を取得したいのです・・・・・。

となるのか解りませんが...??
こう言うことかな?

MsgBox Dir(フルパスファイル名, vbDirectory)

因に StrReverse は、2000からです。

【3328】Re:マクロを用いて開いたファイルのサブフ...
お礼  ntomo  - 03/1/31(金) 16:32 -

引用なし
パスワード
   ▼Jaka さん:
ありがとうございます
うまくいかなかった原因はOFFICEが97だったからだと思われます
>MsgBox Dir(フルパスファイル名, vbDirectory)
>
>因に StrReverse は、2000からです。
よってこの方法でうまくいきました^^♪

カキコミスにもかかわらず
ぽんたさんjakaさんありがとうございました。
またなにかあったらよろしくおねがいします
m(_ _)m

【3329】Re:マクロを用いて開いたファイルのサブフ...
発言  ポンタ  - 03/1/31(金) 16:32 -

引用なし
パスワード
   Jakaさん、フォローありがとうございます。

>MsgBox Dir(フルパスファイル名, vbDirectory)

言われるまで、完全に忘れてました。


>因に StrReverse は、2000からです。

ということは、これなら動くということですね。
#もう、用無しですけど(汗)

Sub test()
  Dim MyPath As String
  MyPath = Workbooks("Book1.xls").Path
  Do
    MyPath = Mid(MyPath, InStr(1, MyPath, "\") + 1)
  Loop While InStr(1, MyPath, "\") > 0
  MsgBox (MyPath)
End Sub

【3332】Re:マクロを用いて開いたファイルのサブフ...
発言  ichinose  - 03/1/31(金) 20:55 -

引用なし
パスワード
   みなさん、こんばんは。
JakaさんのDir関数で話はついているんですが、
Fsoにおもしろいメソッドがあったもので失礼します。以前これで恥ずかしい思いをしたもので覚えていました。ご参考程度に見ていただければ・・・。
'============================================================
Sub test()
  Path = "C:\Documents and Settings\userA\デスクトップ\030127\100.exl"
  Set fso = CreateObject("Scripting.FileSystemObject")
  nm1 = fso.GetParentFolderName(Path)
  nm2 = fso.GetParentFolderName(nm1)
  MsgBox Mid$(nm1, Len(nm2) + 2)
  Set fso = Nothing
End Sub

で「030127」が取得できます。
これ、おもしろいことに"C:\Documents and Settings\userA\デスクトップ\030127\100.exl"というパスの存在の如何に関わらず取得できます。
パス専用の文字列編集メソッドと言ったところでしょうか?
このたぐいのメソッド(他にも似たようなのがありますよね)を勘違いして回答して恥ずかしい思いをしたもので・・・。

【3364】Re:マクロを用いて開いたファイルのサブフ...
お礼  ntomo  - 03/2/3(月) 9:57 -

引用なし
パスワード
   みなさんいろいろレスありがとうございました・・・。
全部やってみます(w
プログラム組むときの組み方などに個性があって
おもしろいですね^^
これからもよろしくおねがいします

【6635】改訂版
発言  Jaka  - 03/7/16(水) 9:13 -

引用なし
パスワード
   >MsgBox Dir(フルパスファイル名, vbDirectory)

上記表現に誤りがありました。
申し訳ございません。

Sub フルパスから()
  Dim FNamFulPas As String
  FNamFulPas = Application.GetOpenFilename("Excelファイル (*.xls), *.xls")
  If FNamFulPas <> "False" Then
    '97以降
    MsgBox Dir(Application.Substitute(FNamFulPas, "\" & Dir(FNamFulPas), ""), vbDirectory)
    '2000以降
    'MsgBox Dir(Replace(FNamFulPas, "\" & Dir(FNamFulPas), ""), vbDirectory)
  End If
End Sub

Sub パッチから()
  Dim FPath As String
  'FPath = ThisWorkbook.Path
  FPath = "C:\Windows\デスクトップ"
  MsgBox Dir(FPath, vbDirectory)
End Sub

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