Excel VBA質問箱 IV

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

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


7555 / 13645 ツリー ←次へ | 前へ→

【38264】ファイル名の変更 ゆっけ 06/5/30(火) 18:56 質問[未読]
【38266】Re:ファイル名の変更 ぱっせんじゃー 06/5/30(火) 19:30 発言[未読]
【38269】Re:ファイル名の変更 ゆっけ 06/5/30(火) 20:01 お礼[未読]
【38267】Re:ファイル名の変更 ponpon 06/5/30(火) 19:46 発言[未読]
【38270】Re:ファイル名の変更 ゆっけ 06/5/30(火) 20:08 質問[未読]
【38271】Re:ファイル名の変更 ぱっせんじゃー 06/5/30(火) 20:25 発言[未読]
【38289】Re:ファイル名の変更 ponpon 06/5/30(火) 23:22 発言[未読]
【38293】Re:ファイル名の変更 Blue 06/5/30(火) 23:37 発言[未読]
【38295】Re:ファイル名の変更 ponpon 06/5/30(火) 23:52 お礼[未読]
【38297】Re:ファイル名の変更 ゆっけ 06/5/31(水) 0:23 お礼[未読]

【38264】ファイル名の変更
質問  ゆっけ  - 06/5/30(火) 18:56 -

引用なし
パスワード
   またまたすみません・・・
Aフォルダの中のファイル名を全て
大文字にしたいんですが、どうすればいいでしょうか。

ちなみにファイルの拡張子はすべて、.dwg
です。

【38266】Re:ファイル名の変更
発言  ぱっせんじゃー  - 06/5/30(火) 19:30 -

引用なし
パスワード
   今日仕事で似たようなものを作りましたので・・・。

Dir
Ucase
をヘルプで調べてみてください。
Lcaseもね。

Sub itiran()
Dim MyDir As String
Dim Fmei As String
Dim i As Long
 MyDir = "D:\test"
 Fmei = Dir(MyDir & "\*.dwg")
  Do While Fmei <> ""
  Name MyDir & "\" & Fmei As MyDir & "\" & UCase(Fmei)
  Fmei = Dir()
  Loop
End Sub

【38267】Re:ファイル名の変更
発言  ponpon  - 06/5/30(火) 19:46 -

引用なし
パスワード
   すでに回答がありますが、せっかく作ったので

Sub test()
  Dim myFile As String
  Dim NewNm As String
  Const myPath As String = "C:\A" '実際の場所に変えてください
  
  myFile = Dir(myPath & "\" & "*.dwg")
  Do While myFile <> ""
    NewNm = myPath & "\" & StrConv(Left$(myFile, Len(myFile) - 4), vbUpperCase) & ".dwg"
    Name myPath & "\" & myFile As NewNm
    myFile = Dir()
  Loop
End Sub

【38269】Re:ファイル名の変更
お礼  ゆっけ  - 06/5/30(火) 20:01 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:
ご親切にありがとうございました。
大変助かりました(^_^)

【38270】Re:ファイル名の変更
質問  ゆっけ  - 06/5/30(火) 20:08 -

引用なし
パスワード
   ▼ponpon さん:
StrConv(Left$(myFile, Len(myFile) - 4), vbUpperCase) & ".dwg"

ありがとうございますポンポンさん(^-^)

ついでにですが、上のコードはどういった内容を表しているのですか?
良かったら教えて下さい!

【38271】Re:ファイル名の変更
発言  ぱっせんじゃー  - 06/5/30(火) 20:25 -

引用なし
パスワード
   それぞれの単語の意味はVBAヘルプにあると思いますよ。

【38289】Re:ファイル名の変更
発言  ponpon  - 06/5/30(火) 23:22 -

引用なし
パスワード
   ▼ゆっけ さん:

>StrConv(Left$(myFile, Len(myFile) - 4), vbUpperCase) & ".dwg"

StrConv
 文字列変換関数 文字列を小文字や大文字、カタカナやひらがななどに変換します。
Left
 文字列関数 文字列を左から指定した数だけ抽出します。
Len
 文字列関数 文字列の文字数を返します。
したがって、
 myFileに格納したファイル名の文字数から".dwg"の4文字分を引いたもの(拡張子を除くファイル名)をvbUpperCase(大文字)にして、".dwg"をくっつける。

これ以外にも、
 Instr関数で"."を見つけ、それより前を抽出して、大文字にするなんて方法も
あると思います。
 抽出は、Leftでなくて、Mid関数でもできます。
詳しくは、ヘルプを参考にしてください。

 ちなみに、Left$の"$"は、なくてもいいですが、あると処理速度が速くなると
どこかで読んだような気がします。Keinさんのまねごとです。
 詳しい人は、教えてください。

【38293】Re:ファイル名の変更
発言  Blue  - 06/5/30(火) 23:37 -

引用なし
パスワード
   ▼ponpon さん:
> ちなみに、Left$の"$"は、なくてもいいですが、あると処理速度が速くなると
>どこかで読んだような気がします。
ヘルプの「関数からの文字列の取得」の項目に
<引用>
次の関数は関数名にドル記号 ($) を追加すると、文字列型 (String) の値を
返します。これらの関数は、ドル記号を付けずに使用すると、バリアント型
(Variant) の値を返します。使用方法と構文は、文字列型 (String) も
バリアント型 (Variant) も同じです。

Chr$ ChrB$ Command$ CurDir$ Date$ Dir$ Error$ Format$ Hex$
Input$ InputB$ LCase$ Left$ LeftB$ LTrim$ Mid$ MidB$ Oct$
Right$ RightB$ RTrim$ Space$ Str$ String$ Time$ Trim$ UCase$
</引用>

とあります。内部での扱いが違うから、速度に差が出るわけですね。

【38295】Re:ファイル名の変更
お礼  ponpon  - 06/5/30(火) 23:52 -

引用なし
パスワード
   ▼Blue さん:
早速の回答ありがとうございます。

>ヘルプの「関数からの文字列の取得」の項目に

ヘルプもなかなか思うような項目にたどり着けません。
単語から検索してのヘルプはいつも使い、たいてい関連項目にも
目を通しています。
たぶん前にこの項目のヘルプを目にしているはずなんですが(^^;)

【38297】Re:ファイル名の変更
お礼  ゆっけ  - 06/5/31(水) 0:23 -

引用なし
パスワード
   皆様方

大変ありがとうございました。

理解出来ました^^活用させていただきます。

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