| ですから、半角カナは禁止なんですってば。(^_^;)
■No56356 (neika さん) に返信 > ファイルの移動、フォルダの作成は既存のVB(何かで使用していましたVB)を編集していけました。 提示されたコードを見る限り、これは VB6 ではなく、Excel VBA のようですね。 VBA のまま実装したいのでしょうか。それとも VB6 に移植したいのでしょうか?
> 何かサンフ゜ル的なものがあれば教えてください。 提示されたキーワードをヘルプファイル(ランゲージ リファレンス)で調べると、 使用例が掲載されていますので、それを手掛かりにしてみてください。
それでも分からないようであれば、ヘルプ記載の内容のどの部分が分からないのかを 書いてもらえれば、その部分について解説しますよ。
> ちなみに既存のVBです。できましたら できると思いますよ。頑張ってみてください。
提示された既存コードでは FileSystemObject が用いられておらず、 従来のファイル入出力ステートメントおよび関数によるファイル処理が 行われているようなので、それに準じた実装にした方が統一性がとれそうですね。
> よろしくお願いいたします。 折角なので、既存の Excel VBA コードにもツッコミを入れておきます。
> Dim FPath1, FPath2, FName Dim FPath1 As String, FPath2 As String, FName As String のように、それぞれに型を明示した方が良いでしょう。
> FPath1 = Range("A1").Value & "\" できれば、パスの末尾が "\" であるかどうかを検証した方が良いかと思います。 たとえばルートディレクトリの場合、既に "\" が付いているのが普通ですし("C:\" のように)。
> FName = Dir$(FPath1 & "*.*") 第2引数を省略した場合には、不可視属性やシステム属性のついたファイルは列挙されないので、 その点、注意が必要です。
> Select Case InStr(FName, "_") > Case Is > 0 > FPath2 = Format(Now, "yyyyMMddHHNNSS") + Left(FName, 15) > Case Else > FPath2 = Format(Now, "yyyyMMddHHNNSS") + Left(FName, 15) > End Select Case ブロックと Else ブロックの内容がまったく同一なので、 これでは判定文の意味がありません。Select Case 〜 End Select まで、 FPath2 = Format(Now, "yyyyMMddHHNNSS") & Left(FName, 15) というコードと同じ意味になってしまっていますよ。
なお、文字列連結には(+ 演算子ではなく) & 演算子を使う事が推奨されています。
> MkDir$ FPath1 & FPath2 「MkDir ステートメント」が「MkDir$ ステートメント」になってしまっていますよ。 一応、$ や # や % を付けてもコンパイルは通ってしまいますが、そのような記法は本来誤りです。 |