VBA Range・セル操作 練習問題(10問)+ 解答解説
ここでは Range・セル操作 をテーマにした中級~上級者向けの演習問題を 10 問用意し、模範コードと解説を添えています。
「セル範囲の読み書き」「条件付き処理」「書式設定」など、実務で頻出するテクニックを整理しました。
Q1. CurrentRegion を配列に読み込み、数値をすべて 10% 増加させて書き戻せ
解答例
Sub IncreaseValues()
Dim arr As Variant
Dim i As Long, j As Long
arr = Range("A1").CurrentRegion.Value
For i = 2 To UBound(arr, 1) '1行目は見出しと仮定
For j = 1 To UBound(arr, 2)
If IsNumeric(arr(i, j)) Then arr(i, j) = arr(i, j) * 1.1
Next j
Next i
Range("A1").CurrentRegion.Value = arr
End Sub
VB解説:
表全体を配列に読み込んで処理 → 一括書き戻しで高速化。
Q2. 特定列の空白セルを黄色に塗れ
解答例
Sub HighlightBlanks()
Dim r As Range
For Each r In Range("B2:B200")
If r.Value = "" Then r.Interior.Color = vbYellow
Next r
End Sub
VB解説:
For Each でセルを順番に処理。空白判定は Value = ""。
Q3. 数値が 10000 以上のセルを太字にせよ
解答例
Sub BoldHighValues()
Dim r As Range
For Each r In Range("C2:C50")
If IsNumeric(r.Value) And r.Value >= 10000 Then
r.Font.Bold = True
End If
Next r
End Sub
VB解説:
条件付きで書式を変更する典型例。
Q4. セル範囲の合計を計算して指定セルに出力せよ
解答例
Sub SumRange()
Dim total As Double
total = Application.WorksheetFunction.Sum(Range("D2:D100"))
Range("D101").Value = total
End Sub
VB解説:WorksheetFunction.Sum を使うと高速に合計を計算できる。
Q5. セル範囲の最大値を求めよ
解答例
Sub MaxValue()
Dim maxVal As Double
maxVal = Application.WorksheetFunction.Max(Range("E2:E50"))
MsgBox "最大値は " & maxVal
End Sub
VB解説:
Excel関数を VBA から呼び出せる。
Q6. セル範囲をクリアせよ(値と書式)
解答例
Sub ClearRange()
Range("F2:F100").Clear
End Sub
VB解説:.Clear は値・書式・コメントをすべて削除。値だけなら .ClearContents。
Q7. セル範囲をコピーして別の場所へ貼り付けよ
解答例
Sub CopyPaste()
Range("A2:C20").Copy Destination:=Range("E2")
End Sub
VB解説:Copy Destination を使うと一行でコピー&貼り付けが可能。
Q8. セル範囲をソートせよ
解答例
Sub SortRange()
Range("A1:C20").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlYes
End Sub
VB解説:Sort メソッドで範囲を並べ替え。Key1 に基準列を指定。
Q9. セル範囲をフィルタリングして表示せよ
解答例
Sub FilterRange()
Range("A1:C100").AutoFilter Field:=2, Criteria1:=">=1000"
End Sub
VB解説:AutoFilter を使うと条件付きで表示を絞り込める。
Q10. セル範囲をループして「文字列の長さ」を出力せよ
解答例
Sub StringLength()
Dim r As Range
For Each r In Range("A2:A20")
If r.Value <> "" Then
Debug.Print r.Value & " → " & Len(r.Value)
End If
Next r
End Sub
VB解説:Len 関数で文字列の長さを取得。入力チェックに応用可能。
✅ 総まとめ
- Range.Value → 配列化 → 高速処理
- For Each → 条件付き処理や書式変更
- WorksheetFunction → 合計・最大値などの計算
- Range メソッド → Clear, Copy, Sort, AutoFilter など便利機能


