制御 実行を繰り返すフロー制御ステートメントDo~Until~Loop
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
Do Until...Loop ステートメントWhile 指定した条件が真 (True) である間Until 指定した条件が真 (True) になるまで
|
Do Until...Loop ステートメントの使用例 |
Private Sub Test1() '***************************************************** '指定されたディレクトリをループして内容を返す '***************************************************** '条件式を満たすまで繰り返す 'Do Until...Loop Dim pth As String Dim buf As String Dim x As Long pth = ThisWorkbook.Path & "\" x = 0 buf = Dir(pth, vbDirectory) Do Until Len(buf) = 0 Debug.Print "x" & x & ":" & buf x = x + 1 ' Dir関数を使用して、次の検索をします。 buf = Dir() Loop 'x0:. 'x1:.. 'x2: test1.jpg 'x3: test1.txt 'x4: test1.xls 'x5: test2.txt 'x6: testDirectory End Sub Private Sub Test2() '***************************************************** '指定されたディレクトリをループして内容を返す '***************************************************** '条件式を満たすまで繰り返す 'Do ...Loop Until Dim pth As String Dim buf As String Dim x As Long pth = ThisWorkbook.Path & "\" x = 0 buf = Dir(pth, vbDirectory) Do Debug.Print "x" & x & ":" & buf x = x + 1 ' Dir関数を使用して、次の検索をします。 buf = Dir() Loop Until Len(buf) = 0 'x0:. 'x1:.. 'x2: test1.jpg 'x3: test1.txt 'x4: test1.xls 'x5: test2.txt 'x6: testDirectory End Sub Private Sub Test3() '***************************************************** '指定されたディレクトリをループして各ファイル名を返す '***************************************************** Dim pth As String Dim buf As String Dim i As Long, x As Long, y As Long Dim myDir As String 'カレントフォルダ(自分) Dim upDir As String 'ルートフォルダ(親フォルダ) myDir = "." upDir = ".." pth = ThisWorkbook.Path & "\" i = 0: x = 0: y = 0 buf = Dir(pth, vbDirectory) Do Until Len(buf) = 0 Debug.Print "x" & x & ":" & buf x = x + 1 If (buf <> myDir) And (buf <> upDir) Then Debug.Print "y" & y & ":" & buf y = y + 1 If (GetAttr(pth & buf) And 16) <> 16 Then Debug.Print "i" & i & ":" & buf i = i + 1 End If End If ' Dir関数を使用して、次の検索をします。 buf = Dir() Loop '┌──────┬─┬──────────────┐ '│定数 │値│内容 │ '├──────┼─┼──────────────┤ '│vbNormal │0 │標準ファイル │ '│vbReadOnly │1 │読み取り専用ファイル │ '│vbHidden │2 │隠しファイル │ '│vbSystem │4 │システムファイル │ '│vbVolume │8 │ボリュームラベル │ '│vbDirectory │16│フォルダ │ '│vbAlias │64│エイリアスファイル(Macのみ) │ '└──────┴─┴──────────────┘ End Sub |