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

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

変数を使用してセルを選択・参照する方法

◆変数を使用してセルを選択・参照する方法


  VBA でセルを選択するには通常、Range または Cells のどちらかを使います。

  どちらか好み(?)の方法を使えば良いわけです。

  Range はどこのセルを参照しているのか感覚的にピンと来ます。

  Cells は 行・列 をループで廻す場合に便利です。

  
  @ Range("A1") スタイルの場合

    For i = 1 To 10
        Range("A" & Format(i)).Select
    Next
       
      i を Format を使って文字に変換します。

     「&」で文字の結合を行って、

      "A" + "1" = "A1" にしています。
        
  A Cells(row,column) スタイルの場合

     この場合は、row と column に変数を使うだけです。

    For xRow = 1 To 10
        For xColumn = 2 To 5
            Cells(xRow, xColumn).Select
        Next
    Next
        

  B 列番号からアルファベットへ・アルファベットから列番号への変換

    "A","BC"の列番号は? 

     列番号が 45 のアルファベットの表記は?
        
    @ A のどちらかを使ってセルを選択するにしても、上記を考えるケースは
    出てきますよね。

    手で数えるのでは大変です。

    aa = Columns("BC").Column
      とすることで Column番号 55 を得ることが出来ます。

    aa = Columns(45).Column
      とすれば $AS:$AS の列番号が得られます。
        
      $ が邪魔な時は
  aa = Columns(45).Address(RowAbsolute:=False, ColumnAbsolute:=False)
      とすることで、結果は AS:AS になります。
        
    AS だけにするには、Mid 関数等を使うしかないようです。
    もっと良い方法をご存知の方は是非メールで教えてください。
        

  C 選択されたセルを順番に参照する方法

    あらかじめセルを選択しておいて、順番に参照する方法もあります。
    Dim LoopArea As Range
   
    Set LoopArea = Selection

    For i = 1 To LoopArea.Count
        LoopArea.Cells(i).Value = i
    Next

    この方法は飛び飛びにセルを選択した場合にはうまく行きません。



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