大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、RangeとCellsの変換について、ご紹介します。RangeからCellsに変換するには、RowとColumnを使います。その反対で、CellsからRangeに変換するには、Addressを使います。RangeとCellsの変換ができれば、VBAコードの作成時に応用が利くようになります。具体的なVBAコードを使って、解説していきます。

はじめに

この記事では、RangeをCellsに変換する方法と、その反対で、CellsをRangeに変換する方法について、ご紹介します。

RangeからCellsに変換するには、『Row』と『Column』を使います。

CellsからRangeに変換するには、『Address』を使います。

RangeやCellsは、VBAの中ではよく使う関数ですので、RangeとCellsの変換ができると、VBAコードを作成する際に応用ができるようになります。

では、RangeとCellsの変換について、解説していきます。

この記事で紹介すること

  • RangeからCellsに変換
  • CellsからRangeに変換

目次から見たい項目へ移動すると便利ですよ。

目次

ポイントとなるVBAコード

初めに、ポイントとなるVBAコードについて、記載しておきます。

VBAコードだけ確認したい場合に、ご活用ください。

With ActiveSheet
    'RangeをCellsに変換
    .Cells(.Range("B2").Row, .Range("B2").Column).Select
    'CellsをRangeに変換
    .Range(.Cells(2, 2).Address).Select
End With

では、解説していきます。

RangeからCellsに変換する方法

RnageからCellsへ変換する方法を解説します。

VBA関数の、RowとColumnを使います。

RowとColumnを使う

RowとColumnを使って、RangeをCellsに変換してみます。

RangeをCellsに変換してセルを選択

Range("B2")をCellsに変換するVBAコードを作成してみました。

Sub TEST1()
    
    With ActiveSheet
        'RangeをCellsに変換して選択
        .Cells(.Range("B2").Row, .Range("B2").Column).Select
    End With
    
End Sub

RowとColumnは次の値を取得できます。

  • Row:セルの行番号を取得
  • Column:セルの列番号を取得

という感じです。

では、RangeからCellsに変換できているか、確認してみます。

Cellsに変換した値で、セルを選択した結果

Range("B2")のセル範囲がされました。

確認のためにRangeでセルを選択

確認のために、Range("B2")でセルを選択してみます。

VBAコードです。

Sub TEST2()
    
    'Rangeで選択
    ActiveSheet.Range("B2").Select
    
End Sub

では、実行します。

Rangeでセルを選択した結果

RangeからCellsに変換したセルと同じセルが選択されています。

RangeからCellsに、うまく変換されていることがわかります。

Cellsで値を取得してみる

Rangeから変換した、Cellsで値を取得してみます。

セルB2の値を取得してみます。

次の表を作成してみました。

作成した表

作成した表

Rangeから変換した、Cellsで値を取得するVBAコードは、こんな感じになります。

Sub TEST3()
    
    With ActiveSheet
        'RangeをCellsに変換して値を取得
        a = .Cells(.Range("B2").Row, .Range("B2").Column)
    End With
    
    MsgBox a
    
End Sub

では、実行してみます。

RangeからCellsに変換して値を取得

Rangeから変換した、Cellsで値を取得した結果

結果は、『E』となりました。

Rangeから変換した、Cellsで値を取得できています。

CellsからRangeに変換する方法

次は先ほどと反対で、CellsからRangeに変換する方法です。

使うVBA関数は、Addressです。

Addressを使う

Addressを使えば、セル範囲を『A1』という感じで、アドレスを取得することができます。

CellsをRangeに変換してセルを選択

CellsをRangeに変換して、セルを選択してみます。

Cells(2, 2)を、Rangeに変換するVBAコードはAddressを使って、このように書きます。

Sub TEST4()
    
    With ActiveSheet
        'CellsをRangeに変換して選択
        .Range(.Cells(2, 2).Address).Select
    End With
    
End Sub

『Cells(2, 2).Address』でアドレスを取得して、Rangeの引数として入力しています。

では、実行してみます。

CellsをRangeに変換して、セルを選択した結果

セルB2が選択されました。

確認のために、Cellsでセルを選択

確認のために、変換前のCells(2, 2)でセルを選択してみます。

VBAコードは、次のようになります。

Sub TEST5()
    
    'Cellsで選択
    ActiveSheet.Cells(2, 2).Select
    
End Sub

では、実行します。

Cellsでセルを選択した結果

Cells(2, 2)が選択されました。

先ほどと同じ、セルB2が選択されました。

Cellsを、Rangeに変換できていることがわかります。

Rangeで値を取得してみる

CellsをRangeに変換して、Rangeで値を取得してみます。

次の表を使います。

使う表

使った表

この表から、CellsをRangeに変換して、セルB2の値を取得してみます。

Sub TEST6()
    
    With ActiveSheet
        'CellsをRangeに変換して値を取得
        a = .Range(.Cells(2, 2).Address)
    End With
    
    MsgBox a
    
End Sub

実行してみます。

CellsをRangeに変換して値を取得

CellsをRangeに変換して値を取得した結果

結果は、『E』となりました。

CellsをRangeに変換して、値を取得できていることがわかります。

おわりに

この記事では、RangeをCellsに変換する方法と、その反対で、CellsをRangeに変換する方法について、ご紹介しました。

RangeからCellsに変換するには、『Row』と『Column』を使います。

CellsからRangeに変換するには、『Address』を使います。

RangeやCellsは、VBAの中ではよく使う関数ですので、RangeとCellsの変換ができると、VBAコードを作成する際に応用ができるようになります。

参考になればと思います。最後までご覧くださいまして、ありがとうござました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す