KONOTI

この世界で得た知識・情報まとめ

【VBA】セルの値を取得方法まとめ

  • 作成日:2024/11/27

vbaでセルの値を取得する方法です。

同一シートの値を取得する

同じシート内にあるセルの値を取得する方法です。 アルファベットで指定するA1形式と、数値で指定するR1C1形式の2つのやり方があります。

B2セルにある値を取得してみます。

vba

Sub test()
Dim val As String

'A1形式
val = Range("B2")


'R1C1形式
val = Cells(2, 2)

End Sub

                                

どちらで指定しても意味は同じです。

ちなみに、デフォルトではエクセルはR1形式で表示されています。 形式を変える場合はファイル→その他→オプション→数式→数式の処理欄にある「R1C1参照形式を使用する」にチェックを入れると R1C1形式になります。

別シートの値を取得する

別シートにあるセルの値を取得するには「Worksheets(シート名)」と指定します。

以下はSheet2にのあるセルの値を取得するサンプルです。

VBA

Sub test()
Dim val As String
    
'A1形式
val = Worksheets("Sheet2").Range("B2")

'R1C1形式
val = Worksheets("Sheet2").Cells(2, 2)

End Sub

WorksheetsとSheetsのちがい

ちなみに、Worksheetsの部分をSheets(シート名)と記述する方法もあります。

WorksheetsはSheetsの一部なのでSheetsだけでも良いのですが、1つだけ注意点があります。 それはWorksheets以外のシートを使用している、かつはWorksheetsと同じ名前をつけているときです。 SheetsにはWorksheets以外にもグラフシートやモジュールシートなど色々なシートがあります。

例えば、同一ブック内にWorksheetsとグラフシートがあり、それらの名前が両方とも「test」という名前だとしましょう。 この場合、Sheets(シート名)と記述するとWorksheetsなのかグラフシートなのか区別がつかないのです。

しかし、このようなケースに遭遇することは非常に稀だと思うので、 文字数が少ない「Sheets(シート名)」と記述しても大抵は問題ありません。 万が一を考慮したい場合は「Worksheets(シート名)」と書けば確実です。

別ブックの値を取得する

別ブックの値を取得する場合は「Workbooks("ブック名").Worksheets("シート名")」と指定します。

VBA
Sub test() 
Dim tmp As String

tmp = Workbooks("Book1").Worksheets("Sheet2").Cells(1, 1)

End Sub
                                

なお、ブックは開いていなければなりません。

この記事のシェアはこちらから

当サイトについて

当サイト(KONOTI)は、日常生活において運営者が得た情報をご紹介するサイトです。 ジャンルに多少の偏りはありますが、基本的には様々な情報を取り扱っていく予定です。

Contact

当サイトへのご連絡は以下よりお願いします。

PAGE TOP ▲

© Copyright 2024 KONOTI