[[20171207164726]] 『Do While FileName <> “”マクロについて』(hiro) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Do While FileName <> “”マクロについて』(hiro)

Do While FileName <> “”が何をしているか検索しても
計算式しかヒットせず何を命令しているのかわからないのですが、

上の方に
Dim FileName As String
FileName = Dir(FolderName1 & “*xls*”)

とあるので、FileName という文字列変数を宣言し、
エクセルのファイルがあるか検索し、
未定義以外だったら、つまりエクセルファイルがあったら
という意味で良いでしょうか?

よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows7 >


エクセルファイルがあったら、という解釈で正しいです。

    Dim FileName As String
    Dim FolderName1 As String

    FolderName1 = "C:\temp\"
    FileName = Dir(FolderName1 & "*xls*")

    Do While FileName <> ""
        FileNameを使う処理
        FileName = Dir
    Loop

フォルダ名は違うでしょうけど、実際はこんなコードかと思います。
最初のFileNameへの代入は、指定したフルパスに該当するファイルの、最初に見つかった1つのファイル名が返ります。 Doループ中のFileNameへの代入は、このように条件を省略した場合、前と同じ条件の、次に見つかったファイル名が返ります。

これを繰り返していくと、同じフォルダ内のファイル名が次々に得られます。そして、もう次が無くなった場合は、FileNameが空になります。 つまり、FileName = "" になります。

Whileの条件は、FileNameが空ではない場合を指定しているので、空になるとループを抜けます。 もし1つもファイルが無い場合は、ループ内に1回も入らないで抜けます。 解説ページを見つけられなくとも、F8キー等でステップ実行していけば、実際の動きが追えると思いますよ。
(???) 2017/12/07(木) 17:16


(???)さんどうも有難うございます。
Loopで記述を間違えて無限ループに入ってしまいPCが反応しなくなる事はないでしょうか?
その場合、どうすれば解除できますでしょうか?
よろしくお願いします。

(hiro) 2017/12/07(木) 17:40


(???)さん有難うございます。
もう一つの問い合わせに回答ありましたのでこちらは今日は大丈夫です、明日以降にまた挑戦します。
有難うございました。

(hiro) 2017/12/07(木) 17:48


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.