プロが教える店舗&オフィスのセキュリティ対策術

EXCELのVBAで処理を作っているのですが、

その中で、セルのアドレスで大小比較ができたらと思うのですが、可能でしょうか。

条件としては、同じ行内です。
A1などのセルのアドレスを変数Xに入れておいて、
 X < Y1
というようなことはできるのでしょうか。

よろしくお願いします。

A 回答 (2件)

マクロ1のようなマクロでアドレスの大小比較はできます。

同一行内であれば見た目正しく判定できますが、同一列内で試すと期待どおりの判定がされない場合がありました。(例、c7セルで実行したとき)

Sub マクロ1()
  ad1 = Selection.Address
  ad2 = Range("c5").Address 'C5セルのアドレスとの比較
  If ad1 < ad2 Then
    MsgBox ("○")
  Else
    MsgBox ("×")
  End If
End Sub

やはりマクロ2のように行数(row)、列数(column)を取得して判定するのが良いように思えます

Sub マクロ2()
  ad1 = Selection.Address
  Clm1 = Selection.Column
  Clm2 = Range("c5").Column

  If Clm1 < Clm2 Then
    MsgBox ("○")
  Else
    MsgBox ("×")
  End If
End Sub
    • good
    • 1

意味がわからない


>セルのアドレスで大小比較ができたらと
セルの値が昇順か・降順になっているなら、行数や列数の大小比較で、当然大小比較を置き換えられます。
(1)2つのセルの値の大小か
(2)番地通常Range(xx).Addressで$A$2と$D$2などを文字列比較する(この二ーズはあるかどうか判らないが)
のどちらですか
ーーー
>同じ行内です。
どちらが右の列にあるかなら
Columnプロパティが使えませんか。
ーーー
わざわざ番地(列、行など)の大小に置き換えるのは、別のテクニックを考えているのでしょうが、一言付け加えておくと、読む人の理解が早いのに。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!