基本的な使い方
ActiveSheetプロパティは、VBAで現在アクティブなシートを参照するために使用されます。つまり、ユーザーが現在操作しているExcelのシートを指します。
以下は、ActiveSheetプロパティを使用する例です。
1 2 3 |
Sub Example() MsgBox ActiveSheet.Name End Sub |
この例では、ActiveSheetプロパティを使用して、現在アクティブなシートの名前を取得しています。MsgBox関数を使用して、名前をポップアップダイアログに表示しています。
また、ActiveSheetプロパティは、他のプロパティやメソッドと組み合わせて使用することもできます。たとえば、ActiveSheetプロパティを使用して、セルの値を読み取ることができます。
1 2 3 4 5 |
Sub Example() Dim cellValue As String cellValue = ActiveSheet.Range("A1").Value MsgBox cellValue End Sub |
この例では、ActiveSheetプロパティを使用して、A1セルの値を読み取っています。Rangeメソッドを使用して、A1セルを参照し、そのセルのValueプロパティを使用して値を取得しています。
サンプルコード
以下サンプルコードは、現在アクティブなシートに対して、指定した列にあるセルの値を取得し、新しいシートに書き込むものです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Sub CopyColumnToNewSheet() Dim colNum As Integer Dim lastRow As Long Dim sourceSheet As Worksheet Dim targetSheet As Worksheet Dim i As Long '指定する列の番号を入力してください colNum = 2 '現在アクティブなシートを参照する Set sourceSheet = ActiveSheet '新しいシートを作成する Set targetSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) 'コピーする列のデータを取得する lastRow = sourceSheet.Cells(Rows.Count, colNum).End(xlUp).Row For i = 1 To lastRow targetSheet.Cells(i, 1) = sourceSheet.Cells(i, colNum) Next i '新しいシートをアクティブにする targetSheet.Activate End Sub |
このコードでは、ActiveSheetプロパティを使用して、現在アクティブなシートを参照しています。また、新しいシートを作成するために、ThisWorkbookオブジェクトを使用しています。コピーする列の番号は、変数colNumに指定しています。
コードを実行すると、指定した列にあるセルの値が、新しいシートのA列にコピーされます。最後に、新しいシートをアクティブにすることで、ユーザーに結果を表示します。
コメント