2019年12月16日
VBA Do While文・Do Until文の使い分け
・Do While文は「継続条件」を書く
・Do Until文は「終了条件」を書く
違いは条件指定のみ。
そのため、どちらを利用しても書くことができる。
使い分けとしては、
「他の人が見たときに、やりたいことを直感的に理解しやすい方」を使う
Do Until文を使ったプログラム
Sub sample()
Dim strFILENAME As String
Dim intFF As Integer
Dim strRec As String
'ファイルを開く
strFILENAME = Application.GetOpenFilename(FileFilter:=cnsFILTER, Title:=cnsTITLE)
'キャンセル処理
If StrConv(strFILENAME, vbUpperCase) = "FALSE" Then
Exit Sub
End If
'FreeFile値の取得
intFF = FreeFile
'指定ファイルをOPEN
Open strFILENAME For Input As #intFF
'EOFまで繰り返す(EOFで終了)
Do Until EOF(intFF)
'行単位にレコードを読み込む
Line Input #intFF, strRec
'A1セルに読み込んだ値を代入
Range("A1").Value = strRec
Loop
'指定ファイルをCLOSE
Close #intFF
End Sub
Do While文を使ったプログラム
Sub sample()
Dim strFILENAME As String
Dim intFF As Integer
Dim strRec As String
'ファイルを開く
strFILENAME = Application.GetOpenFilename(FileFilter:=cnsFILTER, Title:=cnsTITLE)
'キャンセル処理
If StrConv(strFILENAME, vbUpperCase) = "FALSE" Then
Exit Sub
End If
'FreeFile値の取得
intFF = FreeFile
'指定ファイルをOPEN
Open strFILENAME For Input As #intFF
'EOFまで繰り返す(EOF以外は継続)
Do While Not EOF(intFF)
'行単位にレコードを読み込む
Line Input #intFF, strRec
'A1セルに読み込んだ値を代入
Range("A1").Value = strRec
Loop
'指定ファイルをCLOSE
Close #intFF
End Sub
・Do Until文は「終了条件」を書く
違いは条件指定のみ。
そのため、どちらを利用しても書くことができる。
使い分けとしては、
「他の人が見たときに、やりたいことを直感的に理解しやすい方」を使う
Do Until文を使ったプログラム
Sub sample()
Dim strFILENAME As String
Dim intFF As Integer
Dim strRec As String
'ファイルを開く
strFILENAME = Application.GetOpenFilename(FileFilter:=cnsFILTER, Title:=cnsTITLE)
'キャンセル処理
If StrConv(strFILENAME, vbUpperCase) = "FALSE" Then
Exit Sub
End If
'FreeFile値の取得
intFF = FreeFile
'指定ファイルをOPEN
Open strFILENAME For Input As #intFF
'EOFまで繰り返す(EOFで終了)
Do Until EOF(intFF)
'行単位にレコードを読み込む
Line Input #intFF, strRec
'A1セルに読み込んだ値を代入
Range("A1").Value = strRec
Loop
'指定ファイルをCLOSE
Close #intFF
End Sub
Do While文を使ったプログラム
Sub sample()
Dim strFILENAME As String
Dim intFF As Integer
Dim strRec As String
'ファイルを開く
strFILENAME = Application.GetOpenFilename(FileFilter:=cnsFILTER, Title:=cnsTITLE)
'キャンセル処理
If StrConv(strFILENAME, vbUpperCase) = "FALSE" Then
Exit Sub
End If
'FreeFile値の取得
intFF = FreeFile
'指定ファイルをOPEN
Open strFILENAME For Input As #intFF
'EOFまで繰り返す(EOF以外は継続)
Do While Not EOF(intFF)
'行単位にレコードを読み込む
Line Input #intFF, strRec
'A1セルに読み込んだ値を代入
Range("A1").Value = strRec
Loop
'指定ファイルをCLOSE
Close #intFF
End Sub
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/9498108
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック