Range.Columns プロパティ (Excel)

指定された範囲の列を表す Range オブジェクトを返します。

構文

expressionRange オブジェクトを表す変数です。

注釈

1 つの列を返すには、 Item プロパティを使用するか、同じインデックスをかっこで囲みます。 たとえば、 と Selection.Columns.Item(1) の両方Selection.Columns(1)は、選択範囲の最初の列を返します。

複数領域の選択範囲である Range オブジェクトに適用すると、このプロパティは範囲の最初の領域からのみ列を返します。 たとえば、 Range オブジェクトに 2 つの領域 (A1:B2 と C3:D4)Selection.Columns.Count がある場合、4 ではなく 2 が返されます。 複数のセル範囲を選択している可能性があるときは、このプロパティを使用する前に Areas.Count を実行し、範囲に複数の領域が含まれているかどうかを確認します。 その場合、範囲内の各領域をループします。

返される範囲は、指定された範囲の外であることがあります。 たとえば、Range("A1:B2").Columns(5).Select はセル E1:E2 を返します。

インデックスとして文字を使用する場合、これは数字に相当します。 たとえば、Range("B1:C10").Columns("B").Select はセル B1:B10 ではなくセル C1:C10 を返します。 この例では "B" は 2 に相当します。

オブジェクト修飾子を指定せずに Columns プロパティを使用することは、 の使用 ActiveSheet.Columnsと同じです。 詳細については、 Worksheet.Columns プロパティを参照してください。

次の使用例は、 myRange という範囲の列 1 のすべてのセルの値を 0 (ゼロ) に設定します。

Range("myRange").Columns(1).Value = 0

次の使用例は、シート 1 で選択されているセル範囲の列数を表示します。 複数の領域が選択されている場合は、領域ごとにループします。

Public Sub ShowNumberOfColumnsInSheet1Selection
   Worksheets("Sheet1").Activate 
   
   Dim selectedRange As Excel.Range
   Set selectedRange = Selection
   
   Dim areaCount As Long
   areaCount = Selection.Areas.Count 
   
   If areaCount <= 1 Then 
      MsgBox "The selection contains " & _ 
             Selection.Columns.Count & " columns." 
   Else 
      Dim areaIndex As Long
      areaIndex = 1 
      For Each area In Selection.Areas 
         MsgBox "Area " & areaIndex & " of the selection contains " & _ 
                area.Columns.Count & " columns." 
         areaIndex = areaIndex + 1 
      Next 
   End If
End Sub

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

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