アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBAを使っていて

Listviewで取り込んだファイルパスは
d:\aaa\ABC.txt
のようにドライブレターが小文字になります。

一方で


With CreateObject("Scripting.FileSystemObject")
For Each f In .GetFolder(Path).SubFolders

f.path

を使って取り込んだファイルパスは
D:\aaa\ABC.txt
のようにドライブレターが大文字になります。



これは


drive_let = UCase(Left(ListView1.ListItems(2), 1))


For cnt1 = 1 To filenum0

ListView1.ListItems(cnt1 + 1).Text = drive_let & Mid(ListView1.ListItems(cnt1 + 1), 2)

Next cnt1

のようにしていちいちドライブレターだけ大文字か小文字に変換する必要がありますか?
ドライブレターの指定方法があれば教えてください。

A 回答 (2件)

Excel VBA のお話?かな。


残念ながらリストビューコントロールは使ったことがありません。
どうやって取り込んでいるのでしょう?
先達のご登場に期待しましょう。

あと、ちょっとだけ。
VBAのReplace関数にはヘルプを見ると
『compare
省略可能です。文字列式を評価するときに使用する文字列比較のモードを表す数値を指定します。
設定する値については、次の「設定値」を参照してください。』
・・・とありますよ。
ワークシート関数には無さげ。

また、Option Compare ステートメントについても調べてみると、吉かも?
以上ご参考まで。
    • good
    • 0

ほとんど考慮する必要はありませんが


文字列として比較する場合などに
Excel VBA ではデフォルト設定で
大文字/小文字などを区別するBinaryで行われますから
debug.Print "d:DATA"="D:DATA"
でFalseが返ってくるように別のモノと判断されます。
Access VBA ではDataBase比較(Text比較)なので
True(同じ)と判断されます。
    • good
    • 0
この回答へのお礼

ありがとうございます。

それでreplace関数などを使う時にうまくいかないのですが
上記に書いたコードで変換しないと駄目でしょうか?

あまりコードがスマートでないので
抽出時点で書式を変えられないでしょうか?

お礼日時:2015/04/26 19:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!