こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Visual Basic 6.0について

Visual Basic 6.0について
いまプログラムを組んでいるのですが、どうしても分からない点があるので質問させていただきます。
フォルダに毎日更新したときに追加される「aaaa_20100720123456(年月日時分秒).txt」というファイルがあるとします。(年月日時分秒の部分は更新した時間です。)
このファイルをVB6のプログラム内でString型で定義した変数を=で結びたいのです。年月日の部分まではFormat(Now,yyyyMMdd)でいいのですが、時分秒の部分は毎日更新する時間が微妙に違うのでどう書けばいいかが分かりません。
分かりづらいと思いますが、どなたか教えて頂けますか?宜しくお願いします。

このような感じです。
Dim a as String

a="aaaa_"+Format(Now,"yyyyMMdd")+(この部分が分かりません)+".txt"

投稿日時 - 2010-07-20 21:39:30

QNo.6052331

すぐに回答ほしいです

質問者が選んだベストアンサー

Dim strFileName As String

strFileName = Dir("c:\Test\aaaa_" & Format(Now,"yyyymmdd") & "*.txt")

Do While strFileName <> ""

'ここで、変数 strFileName  に格納されているファイル名を使って処理する。


strFileName = Dir()
Loop


説明 :

"*.txt" は、あなたが言っている変動する時分秒にあたるところです。
なんでもござれの指定でよいと思います。

因みに、文字列の連結は、+ ではなく & にしたほうが見た目がいいですよ。

投稿日時 - 2010-07-21 14:15:00

お礼

分かりやすい回答ありがとうございました。
解決することが出来ました。

投稿日時 - 2010-07-28 23:06:59

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.6

質問の意味が良くわからないが
Sub test01()
MsgBox Format(Now(), "yymmddhhmmss")
End Sub
で判ることではないですか。
上記の文字列fnがあって 100720XXXXXXを探すならiF left(fn,6)="100720" で聞けば良いのでは。

投稿日時 - 2010-07-20 23:10:21

お礼

分かりづらい質問なのに回答をして頂き、ありがとうございました。
問題は解決することが出来ました。

投稿日時 - 2010-07-28 23:04:23

ANo.5

#1 rukukuです。

VB6のサンプルプログラムです。
3行目以外はEXCEL VBAと同じです。


Option Explicit

Sub Main()
Dim FolderPath, FileName, FileNames As String

FolderPath = App.Path

FileName = Dir(FolderPath & "\*.txt")

If FileName = "" Then
MsgBox "対象となるファイルがありません"
End
End If

Do While FileName <> ""
FileNames = StrConv(FileName, vbLowerCase)
MsgBox FileName
FileName = Dir()
Loop

End Sub

投稿日時 - 2010-07-20 22:22:27

お礼

ANo.4と共にここでお礼をさせて頂きます。
丁寧な回答ありがとうございました。
Dirで解決しました。

投稿日時 - 2010-07-28 23:02:37

ANo.4

#1 rukukuです。

サンプルプログラムです。
ただし、VB6ではなく、Excel2000VBAです。(Excel2003、2007でも動作します)
自分のファイルがあるフォルダのtxtファイル名を順次、メッセージボックスに表示します。

VB6では「FolderPath = ThisWorkbook.Path」の部分が異なる以外は同じプログラムで動作します。

Option Explicit

Sub FileList()
Dim FolderPath, FileName, FileNames As String

FolderPath = ThisWorkbook.Path

FileName = Dir(FolderPath & "\*.txt")

If FileName = "" Then
MsgBox "対象となるファイルがありません"
Exit Sub
End If

Do While FileName <> ""
FileNames = StrConv(FileName, vbLowerCase)
MsgBox FileName
FileName = Dir()
Loop

End Sub

投稿日時 - 2010-07-20 22:05:18

ANo.3

読み返してみると、質問文は中途半端。

ファイル名を生成する処理をVBで作成していて、日付時刻をファイル名にする部分が分からないのか?

それとも、既に日付時刻をファイル名にもつファイルが存在していて、そのファイルへのアクセス処理をVBで作成しているのか?

どちらの意味なのかによって、助言する内容は全く異なる。

投稿日時 - 2010-07-20 21:54:55

補足

すみません。

後者の方です。

投稿日時 - 2010-07-20 22:05:38

ANo.2

ん~。
私の勘違い?

= Format(Now, "yyyymmddHHMMSS")

じゃ駄目なのか?

= Format(Now, "yyyymmddHHNNSS")
てな話もあるそうだが。

投稿日時 - 2010-07-20 21:49:50

補足

回答ありがとうございます。

文章が分かりづらかったですね。すみません

このプログラムは更新したファイルの中のデータが何件あるかという確認のプログラムなので、更新した時間に実行する訳ではないのでダメなんですよ・・・

投稿日時 - 2010-07-20 22:01:23

ANo.1

こんばんは

「dir関数」があります。
「特定のフォルダ内の.txtファイルを順次操作する」というような場合に便利です。

投稿日時 - 2010-07-20 21:46:31

お礼

早速の回答ありがとうございます。

「dir関数」ですか。ちょっと調べてみます。

投稿日時 - 2010-07-20 21:51:38

あなたにオススメの質問