Excel VBA UsedRangeプロパティでワークシート使用範囲を取得する方法

 

Excel VBA UsedRangeプロパティは、ワークシート上で使用されている範囲を取得するために使用します。

データが入力されているセルの最初のセルから最後のセルまでの範囲を返します。UsedRangeプロパティの使い方や注意点、サンプルコードをもとに具体的に解説します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA UsedRangeを利用

以下のようなシーンで利用されます。

・ワークシート内の全データを一括で処理したい。

・データの量に応じて、処理対象の範囲を動的に決定したい。

・使用されている範囲のデータをクリアしたい。

 

Excel VBA UsedRangeの使い方とポイント

使い方

Dim usedRange As Range
Set usedRange = Worksheets("Sheet1").UsedRange

UsedRangeプロパティを使用するには、ワークシートオブジェクトに対してこのプロパティを呼び出します。

 

ポイント

・ワークシートの中で一度でも使用されたことのあるセルが含まれるため、空白セルが含まれる場合があります。

・特に一度入力されてから削除されたセルがある場合、範囲が意図したものより大きくなることがあります。

 

Excel VBA UsedRangeのサンプルコード

シート1の使用されている範囲を取得し、そのアドレスをメッセージボックスに表示する例
Option Explicit

Sub ShowUsedRange()
    Dim ws As Worksheet
    Dim usedRange As Range
    
    ' シート1を指定
    Set ws = Worksheets("Sheet1")
    
    ' 使用されている範囲を取得
    Set usedRange = ws.usedRange
    
    ' 使用されている範囲のアドレスを表示
    MsgBox "UsedRange is: " & usedRange.Address
End Sub

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

シート1の使用されている範囲内のデータをクリアする例

Option Explicit

Sub ClearUsedRange()
    Dim ws As Worksheet
    
    ' シート1を指定
    Set ws = Worksheets("Sheet1")
    
    ' 使用されている範囲をクリア
    ws.UsedRange.Clear
End Sub

シート1の使用されている範囲内の各セルの内容を読み取り、それをDebug.Printで出力する例

Option Explicit

Sub ReadUsedRange()
    Dim ws As Worksheet
    Dim usedRange As Range
    Dim cell As Range
    
    ' シート1を指定
    Set ws = Worksheets("Sheet1")
    
    ' 使用されている範囲を取得
    Set usedRange = ws.usedRange
    
    ' 使用されている範囲内の各セルをループ
    For Each cell In usedRange
        Debug.Print cell.Address & ": " & cell.Value
    Next cell
End Sub

これらのポイントを理解することで、UsedRangeプロパティを効果的に活用できるようになります。

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問