• ベストアンサー

「.」と「..」はなんですか? vba

フォルダのファイル名を取得する時に myFile = Dir(FolderName & "\*.*", vbDirectory) myRow = 2 Do While myFile <> "" Cells(myRow, 1) = myFile myRow = myRow + 1 myFile = Dir Loop こういうコードをすると、 . .. と言うファイル名も取得されるのですが、 . .. と言うファイルは街灯のフォルダの中にはありません。 これはなんでしょうか?

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

  • ベストアンサー
  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

DOS(コマンドプロンプト)で言うところのサブディレクトリを示すものですね。 いわゆるフォルダであることを示しているのが「.」 その上のフォルダのショートカットのような存在が「..」と覚えてよいと思います。 DOSで今現在設定してある階層のディレクトリを参照するときは   dir または   dir . 一つ上の階層のディレクトリ(フォルダ)を指定するとき、例えば   dir .. のように使います。 そんなわけで、まあ、無視してもOK。 コマンドプロンプトを起動して、「dir」と入力してEnterキーを押すと ファイル名の一覧の先頭に  .  .. が表示されるはずです。確認してみてください。

gwlekpal
質問者

お礼

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

関連するQ&A

  • 実行時エラー 5 ファイル名の書き出し

    これはどういう意味のエラーなのでしょう? Const FolderName As String = "C:\Users" Sub ファイル名を書き出す() Dim myFile As String myFile = Dir(FolderName & "\*.*", vbDirectory) Do While myFile <> "" Debug.Print myFile myFile = Dir Loop End Sub このようにしてフォルダの中のファイル名を書き出していますが ある特定のファイル名になると、myFile = Dirの部分で、 実行時エラー 5 プロシージャーの呼び出し、または引数が不正 が発生します。 ファイル名をただ読み込んでるだけなのに、どうしてエラーが発生するのでしょうか?

  • VBA フォルダ内のファイル名一覧

    下のようなコードですが、Dir("C:\見積\*.xls")の部分を このコードを書いてあるブックのあるフォルダの名前をもっと簡単に取得してコードにできないでしょうか。 もうひとつ付け加えたいこともあります。ファイル名一覧にする際、このブックと「XXX.xls」という名前のブック名以外の一覧にしたいのですが、これもお手上げですので、あわせてお願いします。 Sub test() Dim myFile As String Dim fl As Integer myFile = Dir("C:\見積\*.xls") fl = 9 Do While myFile <> "" fl = fl + 1 Cells(fl, 3).Value = myFile myFile = Dir() Loop End sub

  • VBAでのDoWhileの中のDoWhile

    VBAでファイル名取得のマクロを作成しているのですが buf = Dir(C\aa\aaa\, vbDirectory) buf= Dir(C:\aa, vbDirectory) Do While buf <> "" Do While bufa <> "" msg = msg & bufa & vbCrLf bufa = Dir() Loop msg = msg & buf & vbCrLf buf = Dir() Loop がうまく動作しません。 Dirの()が空白なのと、Do While <>の中身が空白のどちらかが原因だと思うのですが Do Whileの中でさらに Do Whileを動作させるにはどのように書けばいいのでしょうか?

  • VBのDir関数について

    VB6.0について質問です. Dir関数にてフォルダ内のファイルを参照したいのですがうまくいきません>< 最初のファイルは参照できるのですが次のファイルへの参照ができません。。。 下記のコードでおかしいところはあるでしょうか? path = "d:\ABC\data" item = Dir(path & "\*.mdb", vbDirectory) Do While item <> "" ' ループを開始します。 item = Dir ' 次のフォルダ名を返します。 Loop

  • File = Dir は何をしてるのでしょう?

    vbaです。 ---------------------------- Sub フォルダの中にあるファイルとフォルダを書き出す() Dim File As String File = Dir("C:\*.*", vbDirectory) Do While File <> "" Debug.Print File File = Dir Loop End Sub ---------------------------- このコードを実行すると、 フォルダの中にあるファイルとフォルダを書き出されるのですが File = Dir のコードは何をしているのでしょうか? 引数なしのDirの使い方もよくわからないし File = Dirがある事によってどういう効果があるのかもわかりません。

  • Excel マクロ ファイル名取得について

    Excel マクロ ファイル名取得について 特定のフォルダにあるファイルのファイル名を Excelに一覧として作成します。 下記マクロで実現できたのですが、フォルダでファイルを 「詳細」で並べて上から順番にB列に反映することは 可能でしょうか。 ご回答お待ちしております。 Sub fileName() Dim MyF As String Dim myRow As Long 'ファイル名の取得 myRow = 2 MyF = Dir(ThisWorkbook.Path & "\*") If MyF <> "" Then Do Until MyF = "" Cells(myRow, "B").Value = MyF 'ファイル名 MyF = Dir() myRow = myRow + 1 Loop End If End Sub

  • フォルダのファイル数をvbaで取得したい

    vbaなのですが、フォルダにgifファイルがたくさんはいっていますが、 その数を数えるコードを教えてください。 今は、 Sub Macro7() Dim File As String Dim i As Long File = Dir("C:\*.*", vbDirectory) Do While File <> "" File = Dir i = i + 1 Loop MsgBox "ファイル数は" & i & "です" End Sub のように、全てのファイル数をカウントして求めています。

  • 複数フォルダに格納されたファイル名取得VBA

    お世話になっております。 あるフォルダに複数のフォルダが格納されており、更にそのフォルダの中にあるファイルの情報を取得するプログラムを書いたのですが、実行すると下記のようなエラーとなってしまいます。 ■エラー プロシージャの呼び出し、または引数が不正です 下から3行目、「buf = Dir()」が問題であることはわかるのですが、 何が問題でどのように解決したらいいかわかりません。 どなたかご教授の程よろしくお願い致します(>_<) ------------------------------------------------------------------------ Sub test() Dim buf As String Dim fName As String Dim msg As String buf = Dir("*.*", vbDirectory) Do While buf <> "" If GetAttr(buf) And vbDirectory Then If buf <> "." And buf <> ".." Then fName = Dir(CurDir & "\" & buf & "\" & "*.jpg") Do While fName <> "" cnt = cnt + 1 Cells(cnt, 1) = buf Cells(cnt, 2) = fName msg = msg & buf & "\" & fName & vbCrLf fName = Dir() Loop MsgBox msg End If End If buf = Dir() Loop End Sub ------------------------------------------------------------------------ これが実現できないと細かい作業を毎日繰り返す事となり、 かなり業務不可が高いです。。 繰り返しになってしまいますが、どなたかご回答よろしくお願い致します。

  • 【VBA】ファイルを開く→シートをコピー→保存

    VBAを使って、複数ファイルを一気に編集したいです。 あるフォルダ内に、複数のエクセルブックと VBAを登録したブックが入っています。 VBAの内容としては、 (1)フォルダ内のエクセルファイルをすべて開く (2)各ファイル1ページ目のシートを複製(コピー)する (3)上書き保存して閉じる (4)VBAを登録したブックを閉じる です。 下記のように書いてみたのですが、まったく動かないので どこが間違っているかのアドバイスをいただければと思います。 ----------------------------------------------------- Sub test() Dim Myfile, Filepath As String Filepath = ThisWorkbook.Path 'フォルダ名取得 Myfile = Dir(Filepath & "\") 'フォルダ内のファイル名取得 Do While Myfile <> "" Workbooks.Open Filename:=Filepath & "\" & Myfile Workbooks(Myfile).Activate Sheets(1).Select Sheets(1).Copy after:=Sheets(1) Workbooks(Myfile).Close SaveChanges:=True Myfile = Dir() Loop ThisWorkbook.Close SaveChanges:=True End Sub ----------------------------------------------------- よろしくお願いいたします。

  • VBAでブック名の拡張子を除去してシートにコピー

    VBA初心者でコード作成で困っております。 下記の通りコードを組みましたが、シート名をブック名に変更して 保存したいのですが、このコードですと拡張子までついてしまいます。 拡張子を除去するためにはどうすればよいでしょうか? アドバイス宜しくお願い致します。 Sub test() 'シート名の変更 Dim MyPath As String Dim MyFile As String Dim Wb As Workbook MyPath = "C:\TEST\" MyFile = Dir(MyPath & "*.xlsx") Do While MyFile <> "" Set Wb = Workbooks.Open(MyPath & MyFile) ActiveSheet.Name = ActiveWorkbook.Name Application.DisplayAlerts = False Wb.Save Application.DisplayAlerts = True Wb.Close (False) MyFile = Dir() Loop End Sub

専門家に質問してみよう