|
「Sheet1」、「Sheet2」、「Sheet3」...などのシートを指し、Excelのブックに属します。Workbook オブジェクトと同様に省略することが可能で、その場合は選択されているアクティブなシートが対象となります。また、Worksheet オブジェクトにも様々な指定、表現方法があります。ワークシート Sheet1 のセル A1 に「テスト」と入力する場合を例に示してみましょう。 Worksheets("Sheet1").Range("A1").Value = "テスト" (2) Worksheets コレクションを使う場合 Worksheets(1).Range("A1").Value = "テスト" (3) CodeName プロパティを使う場合 Menu.Range("A1").Value = "テスト" 標準では ' Sheet1.Range("A1").Value = "テスト" ' でOKですが、ここでは理解しやすいように CodeName を Menu に変えています。 (4) Sheet1 が選択されている場合(その1) ActiveSheet.Range("A1").Value = "テスト" (5) Sheet1 が選択されている場合(その2) Range("A1").Value = "テスト" (1)は最も標準的な方法です。しかし、ワークシートの名前を変えた場合には書き換えなければならなくなります。(3)のように CodeName を使メリットは、これが無くなることです。慣れない間は(4)や(5)のような記述はおすすめしません。どのシートがアクティブかはっきりしていれば良いのですが、後から何十行もあるプロシージャを見直す時などに分かりやすくするため、(1)か(3)の方法が適当でしょう。特別な場合として、ワークシートのイベントプロシージャの中では(4)や(5)のようにした方が逆にすっきりして良いかもしれません。 (1)や(2)の中で、Worksheet の後の ' s ' ですが、これはワークシート全体、つまりワークシートコレクションという意味です。この中の一部を指定しますということです。 (2)を使う場合は、主に複数のシートを処理します。例えば以下のようになります。
Sub Sample1()
' 各ワークシートの A1 にそのワークシート名を入力します
Dim i As Byte
For i = 1 To Worksheets.Count
Worksheets(i).Range("A1").Value = Worksheets(i).Name
Next i
End Sub
|