Range.Cells プロパティ (Excel) | Microsoft Learn

この記事では、指定された範囲のセルを表すRangeオブジェクトを返すメソッドについて説明しています。Office Add-insは、VSTO Add-insと比べて軽量で、HTML5やJavaScriptなどのWebプログラミング技術を使用して開発可能です。Cellsプロパティの使用により、単一のセルを指定したり、For Eachループで単一のセルを反復処理したりできます。例として、特定の範囲内のセルのフォントスタイルを斜体に設定する方法や、重複データの検出方法が示されています。

Excel VBAにおけるCellsプロパティの利用

Excel VBAを使用していると、特定の範囲を操作することが多くあります。その中で、特に便利なのが「Cells」プロパティです。このプロパティは、指定された範囲内の単一セルを表す「Range」オブジェクトを返します。本記事では、「Cells」プロパティの構文や使用例について詳しく解説します。

構文

expression.Cells

ここで、expressionは「Range」オブジェクトを表す変数です。Cellsプロパティは、この範囲内の特定のセルにアクセスするために使用されます。

概要

Cellsプロパティを使用することにより、特定の行と列のインデックスを指定してセルにアクセスできます。これにより、VBAのコードをより効率的に記述することが可能になります。特に、ループを使用して複数のセルを操作する際に非常に便利です。

たとえば、Cellsを使用せずに特定のセルの値を取得したり、設定したりする場合、通常は次のような書き方をしますが:

Range("A1").Value = "Hello"

Cellsプロパティを使うことで次のように書けます:

Cells(1, 1).Value = "Hello" ' A1セルに値を設定

また、Cellsを使わない場合、常に「Range」を明示的に記述する必要がありますが、Cellsを使用することでこの手間を省けます。

使用例

以下は、VBAを用いてシートの特定の範囲に対して操作を行う例です。

例1: セルのフォントスタイルを太字にする

次の例では、アクティブなワークブックの「Sheet1」において、範囲B2:D6のフォントスタイルを斜体に設定します。

With Worksheets("Sheet1").Range("B2:D6")
   .Font.Italic = True
End With

例2: データの重複チェック

次の例では、「myRange」という名前の範囲内のデータが重複しているかどうかを確認し、重複しているデータのセルアドレスを表示します。

Set r = Range("myRange")
For n = 2 To r.Rows.Count
    If r.Cells(n - 1, 1) = r.Cells(n, 1) Then
        MsgBox "Duplicate data in " & r.Cells(n, 1).Address
    End If
Next

例3: セルアドレスの表示

指定した範囲のセルアドレスを表示する例です。

Public Sub PrintRangeAddresses
   Dim columnsRange As Excel.Range
   Set columnsRange = ThisWorkbook.Worksheets("exampleSheet").Range("B2:C3").Columns

   Dim columnRange As Excel.Range
   For Each columnRange In columnsRange
      Debug.Print columnRange.Address ' 各列のアドレスを表示
   Next

   Dim cell As Excel.Range
   For Each cell In columnsRange.Cells
      Debug.Print cell.Address ' 各セルのアドレスを表示
   Next  
End Sub

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

Office VBAについての質問やフィードバックがある場合は、こちらのページをご覧ください。サポートを受ける方法やフィードバックを提供する方法についてのガイダンスが掲載されています。


このように、CellsプロパティはExcel VBAで非常に強力なツールであり、特定のセルや範囲を容易に操作することができます。是非、実際のプロジェクトで活用してみてください。

————-

Range.Cells property (Excel) | Microsoft Learn

Source link

The article discusses the use of the Cells property in Excel VBA, which returns a Range object representing specified cells. It highlights that Office Add-ins, developed using web technologies like HTML5 and JavaScript, offer a lightweight alternative to VSTO Add-ins for enhancing the Office experience across multiple platforms.

Key Points:

  • Syntax: The expression expression.Cells refers to a Range object where expression represents a Range variable.
  • Functionality: The Cells property allows for versatile access to individual cells within a specified range and simplifies code by enabling direct referencing of rows and columns.
  • Examples:
    • Changing the font style of a specified range.
    • Identifying and displaying duplicate values in a dataset.
    • Demonstrating how the Cells property alters behavior in accessing both ranges and individual cells.

Code Examples:

  1. Setting Font to Italic:

    With Worksheets("Sheet1").Range("B2:Z100") 
       .Range(.Cells(1, 1), .Cells(5, 3)).Font.Italic = True
    End With
  2. Finding Duplicates:

    Set r = Range("myRange") 
    For n = 2 To r.Rows.Count 
       If r.Cells(n-1, 1) = r.Cells(n, 1) Then 
           MsgBox "Duplicate data in " & r.Cells(n, 1).Address 
       End If 
    Next
  3. Printing Addresses:

    Public Sub PrintRangeAddresses
       Dim columnsRange As Excel.Range
       Set columnsRange = ThisWorkbook.Worksheets("exampleSheet").Range("B2:Z100").Columns
    
       Debug.Print columnsRange.Item(2).Address           ' "$C$2:$C$100" 
       Debug.Print columnsRange.Cells.Item(2).Address      ' "$C$2" 
       Debug.Print columnsRange.Cells.Item(2, 1).Address    ' "$B$3"   
    End Sub
  4. Enumerating Cells:

    Public Sub PrintAllRangeAddresses
       Dim columnsRange As Excel.Range
       Set columnsRange = ThisWorkbook.Worksheets("exampleSheet").Range("B2:C3").Columns
    
       For Each columnRange In columnsRange
           Debug.Print columnRange.Address   ' "$B$2:$B$3", "$C$2:$C$3"
       Next
    
       For Each cell In columnsRange.Cells
           Debug.Print cell.Address          ' "$B$2", "$C$2", "$B$3", "$C$3"
       Next  
    End Sub

Additional Information:

The article encourages users to seek support or provide feedback on Office VBA through the designated resources. Overall, it emphasizes the utility and flexibility of the Cells property in managing Excel ranges programmatically.

関連記事

コメント

この記事へのコメントはありません。