• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2010のVBAで起動時に連続番号を表示)

Excel2010でVBAを使用して起動時に連続番号を表示

このQ&Aのポイント
  • 数年前にVBAで質問させていただいたExcel2002の問題を解決するため、Excel2010のVBAを使用して起動時に連続番号を表示したいです。
  • 以前はWindowsXP SP3を使用しており、その際はFileSearchを使用していましたが、Windows7に変更したところ、FileSearchが使えなくなりました。
  • 代わりにFileSystemObjectを使用する方法をネットで調べたのですが、初心者のため理解が難しいです。具体的な記述の変更方法を教えていただけると助かります。

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

  • ベストアンサー
  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.3

#1です。 すみません。エラーの箇所は tmp = Dir() に修正してください。

k-marichan
質問者

お礼

tmp = Dir() にしたら無事数字が動くようになりました!ありがとうございます><

k-marichan
質問者

補足

ありがとうございます! 無事連番が表示されるようになりました! ただ、私の情報不足が原因かもしれませんが 他でエラーが><(ファイル保存するときにもVBAをつかっていたのです) こちらに書くよりもしっかりと質問をこれから再度書きます><すみません。。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

こんにちは。 すでに回答が出ていますが、同じ方法で作られています。 内容的には、わざわざ、FileSystemObject を使うほどのものではありません。 >.SearchSubFolders = False ということなら、そんなに難しく考えなくてよいです。 ただ、以下は、セルにファイル名を出すことも考えているので、余計なら取り去ってください。 それと、FileSearch のファイル検索では、拡張子が、"xls" も"xlsx" も同等として扱ってしまうような記憶があります。同じ挙動にするなら、「And StrComp(Right(fName, 3), "xls", 1) = 0 」は不要です。 また、Auto_Openで、シートを指定していないのは、ちょっと問題アリかなと思います。 '// Const FPATH = "C:\指示\記入済" Sub TestMacro1()  Dim fName As String  Dim cnt As Long  'Dim i As Long  fName = Dir(FPATH & "*.xls")  Do While fName <> ""   If fName <> "." And fName <> ".." Then    If (GetAttr(FPATH & fName) And vbDirectory) = vbNormal _     And StrComp(Right(fName, 3), "xls", 1) = 0 Then     'i = i + 1     'Cells(i, 1).Value = fName '←ファイル名を出力する場合     cnt = cnt + 1    End If   End If   fName = Dir  Loop  Cells(1, 21).Value = cnt  Cells(1, 21).NumberFormat = "0000" End Sub '//

k-marichan
質問者

お礼

やってみたらエラーは出ないのですが 数字が変わらずでした>< 後からわかったのですがもしかしたら 他のモジュールで書いてあるのも関連してるかもしれないので 再度質問を書かせていただきました><お手数かけて申し訳ありません。 もしよければ http://okwave.jp/qa/q8343109.html こちらにファイルで使っているモジュールを全部乗せてみましたので 宜しくお願いします><

すると、全ての回答が全文表示されます。
  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.1

Dir関数を用いて、こんな感じでどうでしょうか。 ----- Public Const FPath = "C:\指示\記入済" 'xlsファイル検索 Sub Auto_Open() Dim tmp as String Dim i as Long tmp = Dir(FPath & "¥*.xls") Do While tmp <> "" i = i + 1 Dir() Loop Cells(1, 21).Value = i+1 Cells(1, 21).NumberFormat = "0000" End Sub

k-marichan
質問者

補足

回答ありがとうございます。 早速やってみましたら コンパイルエラー: 構文エラー がでてDir()の部分が選択されていました><; OKと押したら Sub Auto_Open()の行が黄色くなってました;;

すると、全ての回答が全文表示されます。

関連するQ&A