![名称未設](https://assets.st-note.com/production/uploads/images/9122777/rectangle_large_type_2_4afaa14dcf75d1fc47bca2f6dad91caa.jpeg?width=1200)
【ExcelVBA公開模試】空白が50回連続したら終了
文法を無視して、とりあえず動けばいいという邪道ExcelVBA講座こと「速読VBA単語」に準拠した問題を出題します。
問題
セル範囲A1:A10000の一部に文字列が入力されている(図1)。セルA1から下向きに空白セルを探し、空白セルが連続50回に到達したら、その直前の空白でないセルの行番号をDebug.Printしたい。
例えば、A101から連続で50個空白セルだった場合、その直前の空白でないセルの行番号は100である(図2)。ただし、A1~A50までが空白だった場合は0とし、空白が50回連続する部分が無い場合はその旨を表示する。次のコードを完成させなさい。
Sub moshi()
For i = 1 To 10000
If cnt < 50 Then Debug.Print "Not Found"
End Sub
<図1>
<図2>
わえなび式 正解例
(このページの下にあります)
目標回答時間
プロ2分以内、アマチュア5分以内に処理ができたら合格
この問題の出題範囲
「速読VBA単語」Program3-5まで
ご案内
ExcelVBAをなんとなく理解できればいいという初心者のための「速読VBA単語」を受講希望の方はカリキュラムをご覧ください。
正解例
空白が50個連続したところでExit Forをするので、直前の空白でないセルの行番号は「i - 50」または「i - cnt」である。
Sub moshi()
cnt = 0
For i = 1 To 10000
If Cells(i, 1) = "" Then
cnt = cnt + 1
If cnt = 50 Then
Debug.Print i - 50
Exit For
End If
Else
cnt = 0
End If
Next
If cnt < 50 Then Debug.Print "Not Found"
End Sub
バックナンバー
この記事が気に入ったらサポートをしてみませんか?