Share via


セルを選択またはアクティブにする

Microsoft Excel の場合、通常では最初にセルを選択し、次に書式の設定、値の入力などの操作を行います。 Visual Basic の場合、セルに対しての操作を行う前に、通常、セルを選択する必要はありません。

たとえば、Visual Basic でセル D6 に数式を入力するときに、D6 を選択するコードを記述する必要はありません。 次の使用例のように、Range オブジェクトとしてセルを返し、入力する数式はそのオブジェクトの Formula プロパティに設定します。

Sub EnterFormula() 
    Worksheets("Sheet1").Range("D6").Formula = "=SUM(D2:D5)" 
End Sub

セルを選択せずに、その他のメソッドを使って直接操作する方法については、「セルまたはセル範囲を参照する方法 」を参照してください。

Select メソッドおよび Selection プロパティの使用

Select メソッドは、シートやシート上のオブジェクトをアクティブ化し、Selection プロパティは、作業中のブックの作業中のシートでの現在の選択を表すオブジェクトを返します。 Selection プロパティを正常に使用するには、まずブックをアクティブ化し、シートをアクティブ化または選択してから、Select メソッドを使用して範囲 (またはその他のオブジェクト) を選択する必要があります。

マクロの記録では、Select メソッドおよび Selection プロパティを使用するマクロを作成することがよくあります。 次の Sub プロシージャはマクロの記録を使用して作成されたもので、Select および Selection がどのように機能するかを示しています。

Sub Macro1() 
    Sheets("Sheet1").Select 
    Range("A1").Select 
    ActiveCell.FormulaR1C1 = "Name" 
    Range("B1").Select 
    ActiveCell.FormulaR1C1 = "Address" 
    Range("A1:B1").Select 
    Selection.Font.Bold = True 
End Sub

次の使用例では、ワークシートまたはセルをアクティブ化または選択せずに、上記と同じ操作を実行します。

Sub Labels() 
    With Worksheets("Sheet1") 
        .Range("A1") = "Name" 
        .Range("B1") = "Address" 
        .Range("A1:B1").Font.Bold = True 
    End With 
End Sub

アクティブ シートでセルを選択する

Select メソッドを使用してセルを選択する場合、Select はアクティブなワークシートでのみ動作することに注意してください。 If you run your Sub procedure from the module, the Select method will fail unless your procedure activates the worksheet before using the Select method on a range of cells. For example, the following procedure copies a row from Sheet1 to Sheet2 in the active workbook.

Sub CopyRow() 
    Worksheets("Sheet1").Rows(1).Copy 
    Worksheets("Sheet2").Select 
    Worksheets("Sheet2").Rows(1).Select 
    Worksheets("Sheet2").Paste 
End Sub

選択範囲内のセルのアクティブ化

Activate メソッドを使って、選択範囲内のセルをアクティブにすることができます。 セル範囲を選択している場合でも、アクティブにできるのは単一のセルだけです。 次の使用例はセル範囲を選択し、選択範囲を変更せずに、範囲内の単一のセルをアクティブにします。

Sub MakeActive() 
    Worksheets("Sheet1").Activate 
    Range("A1:D4").Select 
    Range("B2").Activate 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。