(Excel VBA) よく使うブック、シート、セルの指定方法
VBAのコードでよく使うブック、シート、セルの指定方法をまとめてみました。
ウィンドウ
Excel2010までは一つのウィンドウ内にブックが複数存在できるMDI方式でした。Excel2013からは一つのウィンドウが一つのブックのSDI方式になっています。
' アクティブなウィンドウ
ActiveWindow
ブック
' 全てのブック Workbooks ' このブック (コードが書かれているブック) ThisWorkbook ' アクティブなブック (現在一番手前にあるブック) ActiveWorkbook
シート
' 全てのシート (ワークシート, グラフシート, その他のシートを含む) Sheets ' 全てのワークシート Worksheets ' 選択されたワークシート(1つ以上) SelectedSheets ' アクティブなシート ActiveSheet ' 名前が'Sheet1'のワークシート Worksheets("Sheet1") ' シートインデックス(左から1, 2, 3,……)による指定 Worksheets(1)
セル (単一セル)
' アクティブなセル(現在のセル。カーソルが乗っているセル) ActiveCell ' A2セル (2行目, 1列目) Range("A2") Cells(2, 1) ' R行目, C列目 (R = Rows:行, C = Column:列) Cells(R, C) ' 使用している範囲の最終セル (入力されていたり、書式が設定されている) SpecialCells(xlCellTypeLastCell) SpecialCells(xlLastCell) ' 選択範囲内の一番はじめのセル(左上のセル) Selection(1) ' 選択範囲内の最終セル(右下のセル) Selection(Selection.Count)
セル (範囲)
' 全てのセル Cells ' 選択されたセル範囲 Selection ' A1:C5 Range("A1:C5") Range(Cells(1, 1), Cells(5, 3))
行
' 1行目 Rows(1) ' 3行目~5行目 Rows("3:5") Range("3:5") Range(Rows(3), Rows(5))
列
' A列(1列目) Columns("A") Columns(1) ' C列~E列(3列~5列) Columns("C:E") Range("C:E") Range(Columns(3), Columns(5))
最終セル、最終行、最終列の選択
' 最終セルの選択 SpecialCells(xlLastCell).Select ' 最終行の選択 Cells.SpecialCells(xlLastCell).EntireRow.Select ' 最終列の選択 Cells.SpecialCells(xlLastCell).EntireColumn.Select