練習問題と内容について
・練習問題の狙い
このシリーズでは課題を元にマクロVBAを実践することでスキルを身につけることが出来ます。
正直、ソースコード作成については実践あるのみです!
答えのコードについては数例挙げますが、「もっといい答えがある」などの意見があれば
問い合わせから連絡ください!
こんな問題を作ってほしいなどの意見もお待ちしております!
・練習問題11について
こちらはマクロVBAの知識で少し発展した課題になります。
指定されたセルの文字数・文字列の長さの合計値を計算し、表示する練習問題となります。
それでは頑張っていきましょう!
練習問題の内容と動作説明
問題内容
セル番地A1からA10までの文字数・文字列の長さの合計値を計算し、セル番地C2に結果を表示する。
動作説明
VBAを使用して、セル番地A1からA10までの文字列の長さを計算し、その合計値をセル番地C2に表示します。
具体的には、A1からA10までのセルの値を取得し、文字数・文字列の長さを計算していき、最終的な合計値をC2に表示する必要があります。
ヒント
以下のヒントを参考にして解答コードを作成してみてください。
・ヒントその1
ループを使用してセル番地A1からA10までの値を順番に取得します。
例えば下記のような見本を紹介します。
‘ここに処理
Next cell
・ヒントその2
セルに入力されてある文字数・文字列の長さを計算するためには「Len関数」を使用する必要があります。
Len関数の構文は下記の通りです。
・ヒントその3
文字数・文字列の長さをカウントアップします。
カウントアップ方法は「変数=変数+1」で指定した変数がカウントアップされます。
これらのヒントを参考にして、解答コードを作成してみてください。
Excel 2013以下を使用している方はサポートが終了しているので注意が必要です!
【最新2023年】Excel・Officeの価格比較!あなたに合ったオススメの製品の選定方法から購入 ► 独学エクセル塾 (dokugakuexcel.com)
解答コード
では回答を見ていきましょう!
・回答その①
Sub Exercise11to1()
Dim totalLength As Integer
Dim cell As Range
totalLength = 0
For Each cell In Range(“A1:A10“)
totalLength = totalLength + Len(cell.Value)
Next cell
Range(“C2“).Value = totalLength
End Sub
上記のコードは、セル番地A1からA10までの文字列の長さの合計値を計算し、セル番地C2に結果を表示するVBAのマクロです。
解答コードの流れは以下の通りです
1. totalLength という変数を宣言し、合計値を保持します。
2. ループを使用して、セル番地A1からA10までのセルの値を取得します。
3. 取得したセルの値の文字列の長さを計算し、合計値に加算します。
4. 最終的な合計値をセル番地C2に表示します。
では実行してみましょう。
結果はこのようになります。
文字数の合計は「33」となりました。
文字数の合計は手動で数えても「33」なので問題なく機能していることが分かります。
・回答その②
Sub Exercise11to2()
Dim totalLength As Integer
Dim TargetLength As Integer
totalLength = 0
For i = 1 To 10
TargetLength = Len(Cells(i, 1))
totalLength = totalLength + TargetLength
Next i
Range(“C2”).Value = totalLength
End Sub
上記のコードでは、Forループを使用してセル番地A1からA10までの文字列の長さを計算しています。
変数「i」を1から10までの値で変化させ、Len(Cells(i, 1))を使用してセルの値の文字の数を取得しています。
計算した文字列の長さをtotalLengthに加算し、最終的な合計値をセル番地C2に表示しています。
必要な知識
この問題を解くためには、以下の基本的な知識が必要です。
ループ構造
偶数の個数を数えるためには、セル番地A1からA10までの値を1つずつ判定する必要があります。
ループ構造を使用して、指定した範囲のセルを順番に処理する方法を理解する必要があります。
今回はFor Each文とFor Next文を使用しました。
文字列の長さの計算
文字列の長さを計算するために、Len関数を使用します。Len関数は、文字列の長さを返します。
構文をは下記の通りです。
出力先=Len(対象となる文字列)
とてもシンプルな関数ですね。
まとめ
この練習問題では、VBAを使用してセル番地A1からA10までの文字列の長さの合計値を計算し、セル番地C2に結果を表示する方法を学びました。
具体的には、Forループを使用してセルの範囲を繰り返し処理し、各セルの値の文字列の長さを計算しました。
計算した長さを合計値に加算していき、最終的な結果をセル番地C2に表示しました。
この問題を解くためには、ループ構造の理解、セルの範囲指定、文字列の長さの計算、変数の宣言と使用といった基本的な知識が必要です。
VBAを使ってExcelの操作を自動化することで、繰り返し行われる処理や複雑な計算を効率的に実行することができます。
練習問題を通じて、VBAのスキルを向上させ、Excelの操作やデータ処理の効率化を実現するための能力を身につけていきましょう。
以上で練習問題11となります。お疲れ様でした!