名称未設

【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

バックナンバー


この記事が気に入ったらサポートをしてみませんか?