アプリケーションとしてのVBA Excel(エクセル) VBA の役立つ Tips の紹介

アプリケーションとしてのVBA

選択されているセルのアドレス・行・列番号 を調べる /
順番にアクセスする

選択されているセルのアドレス・行・列番号 を調べる / 順番にアクセスする


  ユーザーに何らかの処理をさせたいセルを選択してもらって、そのセルに処理を適用
  するアプリケーションの用途は多いのではないでしょうか。

  その場合、選択されているセルを For ループなどを使って順番に参照して、操作する
  必要があります。

  つまり、選択してあるアドレスや 行番号、列番号を取得できれば、汎用性ある
  アプリケーションを作成できるようになります。

  方法は、Address,Row,Column のプロパティを使用します。

  次のようにセルを選択して、アドレスや 行番号、列番号を調べる方法を
  説明します。

セルの選択画面

  下記のマクロを参照してください。

Sub Sample1()

    Dim RowCnt, ColCnt, StartRow, StartColumn As Integer
    Dim Max_Row, Max_Column, i As Integer
    Dim LoopArea As Range
    Dim SelectArea As String
    
    SelectArea = Selection.Address
    
    RowCnt = Selection.Row
    ColCnt = Selection.Column

    Set LoopArea = Selection
    
    StartRow = LoopArea.Cells(1).Row
    StartColumn = LoopArea.Cells(1).Column
    
    Max_Row = LoopArea.Cells(LoopArea.Count).Row
    Max_Column = LoopArea.Cells(LoopArea.Count).Column

End Sub

  上記マクロを実行すると、各変数には以下の値が入ります。

    SelectArea  : "$B$3:$F$10"
    RowCnt      :  3
    ColCnt      :  2
    StartRow    :  3
    StartColumn :  2
    Max_Row     : 10
    Max_Column  :  6

  LoopArea.Count は選択されているセル数が得られます。


  また、選択してあるセルを順番にアクセスする場合は、以下のようにすると
  便利です。


Sub Sample1()

    Dim i As Integer
    Dim LoopArea As Range
    
    Set LoopArea = Selection
    
    For i = 1 To LoopArea.Count
        LoopArea.Cells(i) = "AA"
    Next
   
End Sub



Copy (C) 2005   アプリケーションとしてのVBA   All Rights Reserved.