練習問題と内容について
・練習問題の狙い
このシリーズでは課題を元にマクロVBAを実践することでスキルを身につけることが出来ます。
正直、ソースコード作成については実践あるのみです!
答えのコードについては数例挙げますが、「もっといい答えがある」などの意見があれば
問い合わせから連絡ください!
こんな問題を作ってほしいなどの意見もお待ちしております!
・練習問題16について
こちらはマクロVBAの知識で少し発展した課題になります。
指定されたセルを元に、空白セルの個数を表示する練習問題となります。
それでは頑張っていきましょう!
練習問題の内容と動作説明
問題内容
セル番地A1からA10までのセルのうち、空白セルの個数を表示する。
動作説明
VBAを使用して、指定された範囲のセルのうち、空白セルの個数をカウントし、結果を表示します。
この問題では、セル番地A1からA10までのセルのうち、空白セルの個数を求める必要があります。
ヒント
以下のヒントを参考にして解答コードを作成してみてください。
・ヒントその1
セルに値を表示するためには、Rangeオブジェクトを使用します。
セル番地を指定して該当するセルオブジェクトを取得し、計算する必要があります。
セル範囲を指定するには、Range(“D1:D5”)というように範囲の開始セルと終了セルを指定します
・ヒントその2
取得したデータの空白のセルを数えるには、関数を使用する必要があります。
例えば、WorksheetFunction.countBlank()関数を使用して、セル範囲の空白をカウントすることができます。
・ヒントその3
セルの値が空白かどうかを判定するためには、IsEmpty関数を使用します。
例えば、IsEmpty(Range(“A1”))というように使います。
IsEmpty関数は、セルが空白の場合にTrueを返します。
以上のヒントを参考に課題に取り組んでみてください!
Excel 2013以下を使用している方はサポートが終了しているので注意が必要です!
【最新2023年】Excel・Officeの価格比較!あなたに合ったオススメの製品の選定方法から購入 ► 独学エクセル塾 (dokugakuexcel.com)
解答コード
では回答を見ていきましょう!
・回答その①
Sub Exercise16to1()
Dim rng As Range
Dim cell As Range
Dim countBlank As Integer
Set rng = Range(“A1:A10”)
countBlank = 0
For Each cell In rng
If IsEmpty(cell) Then
countBlank = countBlank + 1
End If
Next cell
Range(“C2”).Value = countBlank
End Sub
上記のコードでは、セル番地A1からA10までの範囲において空白セルの個数をカウントし、結果をC2に表示しています。
解答コードでは、Rangeオブジェクトを使用してセル範囲を指定し、For Eachループを使用して各セルを順に処理しています。
IsEmpty関数を使ってセルが空白かどうかを判定し、空白の場合にはカウント変数を増やしていきます。
最後に、空白セルの個数をC2表示しています。
それでは実行してみましょう。
結果はこのようになります。
A1からA10の空白セルの数は「4セル」ということがわかりました。
・回答その②
Sub Exercise16to2()
Dim rng As Range
Dim countBlank As Integer
Set rng = Range(“A1:A10”)
countBlank = WorksheetFunction.countBlank(rng )
Range(“C2”).Value = countBlank
End Sub
解答コードでは、Rangeオブジェクトを使用してセル範囲を指定し、
WorksheetFunction.CountBlankメソッドを使って空白セルの個数を取得しています。
最後に、空白セルの個数をC2表示しています。
WorksheetFunctionオブジェクトを使用することで、Excelの組み込み関数をVBAで利用することができるのでとても便利です!
必要な知識
この問題を解くためには、以下の基本的な知識が必要です。
セルの判定
セルが空白であるかどうかを判定するために、IsEmpty関数を使用します。
IsEmpty関数は、指定されたセルが空白であればTrueを返します。
WorksheetFunctionの使用
空白セルのカウントをするためには、WorksheetFunctionが必要です。
下記参考記事で紹介しています!
まとめ
この練習問題では、VBAを使用して指定された範囲内の空白セルの個数をカウントする方法を学びました。
具体的には、セル番地A1からA10までの範囲において空白セルの個数を求める問題を解きました。
解答コードでは、For Eachループを使用して各セルを順に処理し、IsEmpty関数を使用してセルが空白かどうかを判定しました。
また、別の解答としてWorksheetFunction.CountBlankメソッドを使用する方法も紹介しました。
このメソッドを使うことで、より簡潔に空白セルの個数を取得することができます。
VBAを使うことで、Excelの操作を自動化し、複雑な処理を行うことができます。
練習問題を通じてVBAのスキルを向上させ、より高度な操作や処理を行えるようになることを目指しましょう。
以上が練習問題16となります。お疲れ様でした!