人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

質問です
c:\test\のホルダーの中に複数のCSVファイルがあります
そのファイル名の頭に連番を01-から順番にファイルの数分だけ
上から下の並び順に番号をつけたいのですが(最後は数字てきには99-となります)
マクロでお願いします。
最初は以下の状態です
aaaa.csv
bbbb.csv
cccc.csv
連番を付けると以下の状態です半角番号と-の半角です
01-aaaa.csv
02-bbbb.csv
03-cccc.csv
以下ファイルの数の分の連番です

●質問者: inosisi
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● きゃづみぃ
●100ポイント ベストアンサー
'
'ツール → 参照設定で Microsoft ActiveX Data Objects *.* Library にチェックを入れておいて下さい

'


Sub main()
Dim p As String
'対象フォルダを指定してください。
'このフォルダに この実行用のブックは 入れないでください。

p = "C:\test\"

'処理対象となる拡張子を指定して 呼び出します。
Call jikkou(p, "csv")

End Sub


Sub jikkou(p As String, s As String)
 
  'Recordsetを作成
 Dim RS As ADODB.Recordset
 Set RS = New ADODB.Recordset
 RS.Fields.Append "Name", adVarWChar, 256
 RS.Fields.Append "Date", adDate
 RS.Fields.Append "Size", adInteger
 RS.Open

  'データを格納
 Dim Path As String
 Path = Dir(p & "*." & s)
 Do Until Path = ""
 RS.AddNew "Name", Path
 RS.Update
 Path = Dir()
 Loop


 If RS.RecordCount = 0 Then
 MsgBox "該当データなし"
 RS.Close
 Set RS = Nothing
 Exit Sub
 End If

  'ソート
 RS.Sort = "Name"  'ファイル名順
 RS.MoveFirst

  '表示
 k = 1
 Do Until RS.EOF
 a = Right("0" & Trim(Str(k)), 2) & "-"
 Name p & RS.Collect("Name") As p & a & RS.Collect("Name")
 k = k + 1
 If k > 99 Then Exit Do
 RS.MoveNext
 Loop

 RS.Close
 Set RS = Nothing

End Sub


実行する前に
ツール → 参照設定で Microsoft ActiveX Data Objects *.* Library にチェックを入れておいて下さい。

バージョンは 一番 大きいものでいいです。


きゃづみぃさんのコメント
リネームは 99までしか行いません。

inosisiさんのコメント
ありがとうございます Excel 2010を使用しています ツール → 参照設定で Microsoft ActiveX Data Objects *.* Library にチェックを入れておいて下さい の場所がわからないのですが教えていただきますか

きゃづみぃさんのコメント
この ソースを 貼りつけるウィンドウのバーに ツールって ないでしょうか?

inosisiさんのコメント
わかりましたありがとうございました 早速実行しましたら上手くいきましたありがとうございました 大変たすかりました今後ともよろしくおねがいします。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ