目次
目的
- 単一セルを選択状態にしたい。
- 二通り試してみる。
- Range
- Cells
- エラーの発生例を見る。
その一例
- 白紙のワークシートでテストしてみます。
- 下記マクロを実行してみます。「B3」を選択するマクロです。
Sub B3選択()
Range("B3").Select
End Sub- Range で操作対象取得。
- Select で選択実行。
- 「B3」が選択状態になりました。
- 下記マクロでも同じ結果になりました。
Sub Cells使用_B3選択()
Cells(3, 2).Select
End Sub- Cells で操作対象取得。
- (3,2) は 3 行目の 2 列目という意味です。
- 下記マクロでも同じ結果になりました。
エラー発生例 1
操作対象のシートがアクティブになっていない場合、エラーが発生するようです。
- 「Sheet2」がアクティブになっている状態でテストしてみます。
- 下記マクロを実行してみます。「Sheet1」の「B3」を選択してみます。
Sub エラー発生_B3選択()
Worksheets("Sheet1").Range("B3").Select
End Sub - エラー発生。
Activate でアクティブシートを切り替えておくと、エラーが発生しないようです。
- 下記マクロを実行してみます。
Sub エラー解消_B3選択()
Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range("B3").Select
End Sub - 「Sheet1」がアクティブになって「B3」が選択されました。
- 下記マクロを実行してみます。
エラー発生例 2
シートが選択されていても、アクティブになっていないとエラーが発生するようです。
- 「Sheet1」が選択されている状態でテストしてみます。
- 下記マクロを実行してみます。 Sheet2,1,3 の順番で Select しています。
Sub エラー発生_selectされていてもactiveになっていない()
Debug.Print "active="; ActiveSheet.Name
Worksheets(Array("Sheet2", "Sheet1", "Sheet3")).Select
Debug.Print "active="; ActiveSheet.Name
Worksheets("Sheet1").Range("B3").Select 'エラー
End Sub- Array でまとめて選択。
- エラー発生。
イミディエイトウィンドウへの出力結果。
Sheet1~3 が選択されています。
テスト環境
- Windows 10
- Microsoft Office Excel 2003
以上、閲覧ありがとうございました。