ここから本文です

VBAで困ってます(´;ω;`)

hor********さん

2016/11/1015:13:01

VBAで困ってます(´;ω;`)

とあるパスの中に任意の文字列が含まれていた場合、その文字列以降のパスを削除し、短縮パスを作成するというマクロです。

※任意の文字列にはワイルドカードを組み合わせたものが入ります。


任意の文字列
NGword = "平成##年"

pass = C:/aaa/bbb/ccc/428_平成13年4月/aaaa.png

pass = C:/aaa/bbb/ccc/


like演算子で含まれるかまでは判定できましたが、次に短縮パスをどう作成するかが分からず…

閲覧数:
43
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

jun********さん

2016/11/1015:24:24

含まれていることが分かっているのでしたら、InStr、InStrRev、Leftを組み合わせれば可能です。

p=InStr(pass, "平成")
tmp=Left(pass, p-1)
p=InStrRev(tmp, "/")
pass=Left(tmp, p)

まず「平成」の手前まで切り取って、「/」を逆方向に検索して、左端からその位置までを更に切り取ります。

質問した人からのコメント

2016/11/10 16:26:28

ありがとうございます。勉強になりました(´;ω;`)

ベストアンサー以外の回答

1〜1件/1件中

a_h********さん

2016/11/1015:30:50

NGword = "平成##年"

元pass = C:/aaa/bbb/ccc/428_平成13年4月/aaaa.png

新pass = C:/aaa/bbb/ccc/

元passの文字列に対してまずは、フォルダ名を取得し、
NGwordを””(Null)に文字置換。
そうすれば、NGwordの文字列が含まれているかの判断が可能ですよね。


注)pass = C:/aaa/bbb/ccc/428_平成13年4月/aaaa.png
これはパス(path)ではなく、フルパスファイル名。

マイブックのフルパス(ブック名を含まない)は取得できるはず。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる