- ベストアンサー
[VBA] フルパス名で区切り記号を変更する
- VBAでフルパス名を指定する方法について質問があります。
- 現在のコードではフルパス名を指定できないため、変更方法を知りたいです。
- 具体的には、フルパス名の区切り記号を変更したい場合にどのようにコードを変更すれば良いか教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
変換の部分だけですが Range("A2") = Replace(Range("D2"), "\", "/") で試してみてください。
その他の回答 (3)
- kkkkkm
- ベストアンサー率66% (1725/2595)
いまさらで蛇足ですが 前回の時間のやつVBAはどうかなと思って回答しませんでしたがVBAでよろしければ Sub Test() Dim n As Long n = InStrRev(StrConv(Range("A2").Value, vbNarrow), " ") Range("B2").Value = Trim(Left(Range("A2").Value, n)) & " (" & Mid(Range("A2").Value, n + 1) & ")" End Sub 文字列に(soft Ball match のように)空白がいくつあろうとも (時間も文字列として入っているとして) soft Ball match 13:05:12 ↓ soft Ball match (13:05:12) になります。
- bardfish
- ベストアンサー率28% (5029/17766)
Excel VBAでしょうか? Excel VBAよりVisualBasicの方が便利なので・・・ Dim lStr As String = "C:\Users\xxxx\Downloads\Video\LiveConcert.mp3" Dim lAry As String() = lStr.Split("\") Console.WriteLine("タイプA" & String.Join("/", lAry)) Console.WriteLine("タイプB" & lStr.Replace("\", "/")) 半角の¥はバックスラッシュになります。 ※これはフォントの関係でそうなってしまうだけで文字コードは同じです。 タイプAでは区切り記号で分割して配列変数へ、その後で連結する際に任意の文字を挟んで文字列に。このメソッドのメリットは配列を連結するときに一番最後に指定文字が付加されないと言うことです。 タイプBは単純に検索文字を指定し、見つかったら指定された文字に置き換えると言うだけ。 Excel VBAでは同じ書き方はできないはずですが同じことはできます。
お礼
bardfishさん、ありがとうございます。 >Excel VBAでしょうか? ソフトウェア>EXCEL(エクセル)のカテゴリーで質問したので EXCEL VBAです。 個人的には、EXCELのVBAも素人で VisualBasicの方はさっぱりわからない状態なので kkkkkmさんのコードを利用することにしました。
- kzr260v2
- ベストアンサー率48% (854/1778)
もしかしたら、スラッシュではなく、バックスラッシュでパスを表示したいのではないでしょうか。そうであるなら、文字の置き換えは必要なく、セルに設定されているフォントを、日本語フォントから英語フォントに変更すると表示されます。 どうしても文字の置き換えが必要な場合、VBAでコードを記述しなくても、Excelの文字を置き換えする機能を使えば済むと思います。以下は置き換えする例です。 https://dekiru.net/article/12053/ ※ パスに使用されている記号は、パスを表現する上で必須の記号です。置き換えをしてしまうと、パスとして利用できなくなることにご注意ください。 以上、参考にならなかったらごめんなさい。
お礼
kzr260v2さん、ありがとうございます。 >スラッシュではなく、バックスラッシュでパスを表示したいのではないでしょうか。 そのとうりです。 但し、日本語フォントから英語フォントに変更するとワークシートの フルパスは、バックスラッシュで表示されますが VBAでは、 WsCJMP3.Range("A2")では、半角の¥に戻ってしまいます。
お礼
kkkkkmさん、ありがとうございます。 kzr260v2さんからご指摘がありましたが、 スラッシュではなく、バックスラッシュのミスがありました。 提示いただいた式を書きのように変更して上手く バックスラッシュでパスを表示できました。 WsCJMP3.Range("A2") = Replace(WsList.Range("D2"), "\", "/") 前回の質問に関しても回答頂き感謝します。 (空白が複数あるのは、タブで見栄えを良くするだけのモノなので流石に凝りすぎですね)