はじめまして。宜しくお願いします。
現在Access2002のVBAをつかってタイトルのようなことを実現したいと思っています。
Dim a As String
Dim b As String
という二つの変数を用意して
「C:\Documents and Settings\デスクトップ\test.csv」という文字列が与えられているとき
変数aには「test.csv」を、変数bには「C:\Documents and Settings\デスクトップ\」を
格納しようとしています。
スマートなやり方がわからず、
文字列の右から一文字ずつ比較して行き、何文字目に「¥」が出てくるかをカウントして、right関数とleft関数で分割を行っています。
このような処理を行う場合、なにか適した関数があると思い探しているのですが、
なかなか見つからず、行き詰っています。(そのような関数があるのかも分からず・・)
もしもなにかお気づきの方が居られましたら、ご教授宜しくお願いします。
No.3ベストアンサー
- 回答日時:
こんにちは。
maruru01です。フルパスを、ファイル名のみとパスのみに分けるということですね。
現状はInStrRev関数を使用しているということでしょうか。
Win32APIにはPath系関数群というのがあり、いろいろなパスの操作を行えます。
ファイル名のみを取り出すのは、
PathFindFileName関数または、PathStripPath関数で、
パスのみを取り出すのは、
PathRemoveFileSpec関数です。
各関数名で検索してみて下さい。
とりあえず、サンプルが載っているHPを1つ紹介しておきます。
http://plaza5.mbn.or.jp/~heropa/vb122.htm#PathFi …
http://plaza5.mbn.or.jp/~heropa/vb122.htm#PathSt …
http://plaza5.mbn.or.jp/~heropa/vb122.htm#PathRe …
上記3つのおおもとのHP
http://plaza5.mbn.or.jp/~heropa/index.html
ついでにもう1つ
http://homepage1.nifty.com/nishikawa/laboratory/ …
参考URL:http://plaza5.mbn.or.jp/~heropa/index.html,http://homepage1.nifty.com/nishikawa/laboratory/ …
こんにちは。早速のレスありがとうございます。
みなさんのレスの速さと丁寧さに感動しています。
ちょうど私も、InStrRev関数を発見して「使えるのでは」と思っていたところです。
API関数については知識がなかったので、大変勉強になりました。
本当にありがとうございます!
No.2
- 回答日時:
Split関数とJoin関数を使ってみてはどうでしょう。
Split関数は、指定した文字で文字列を分割します。
この例では、\を分割のキーにして、
オリジナルの文字列を複数の文字列の集合にします。
集合の最後の文字列を変数aに代入して、それ以外のものを、Join関数を利用してくっつけます。
Join関数でできた文字列の最後尾に、#をくっつけて
文字列bに代入すればできあがり。
スマートか?といわれると疑問ですが、わかりやすい処理です。
また、例に出された内容であれば、
FileSystemObjectを利用して、フォルダ内のファイル一覧を出すことも可能ですよ~。
では。
こんにちは。早速のレスありがとうございます。
回答をいただいたのですがmaruru01さんの方法がうまくいきそうなので
それを使ってみたいと思います。
しかしFileSystemObjectのこともあわせ、貴重なアイデアをいただき
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで=より左の文字を一括で...
-
エクセルでアルファベットか数...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
Excelで3E8を3.00E+8にしない方...
-
文字列からタブコードを取り除...
-
OnTime 使用時のプロシージャへ...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
[C言語]fputsとfprintfの違い
-
Msgboxの×が押されたとき
-
【Excel VBA】複数ある特定の文...
-
エクセルで文字列の最大値を抽...
-
MS SQLServer のSQLで文字列の...
-
16進数を10進数に簡単に変換す...
-
C#で年月を比較する
-
エクセルで文字列をtxtファイル...
-
Left関数とRight関数を合わせた...
-
VBの「As String * 128」とは?
-
Access2000 (VBA) ' & "など...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
Excelで指数表現しないようにす...
-
エクセルで文字列の最大値を抽...
-
エクセル 数値データを桁をそ...
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
sedなどで、特定の文字列の後の...
-
MS SQLServer のSQLで文字列の...
-
Left関数とRight関数を合わせた...
-
Msgboxの×が押されたとき
-
アクセスで特定の数字以外(複...
-
【Excel VBA】複数ある特定の文...
-
エクセルでセル内の文字列の最...
-
C#で年月を比較する
おすすめ情報