電子書籍の厳選無料作品が豊富!

「もしアクティブセルの一つ上のセルが選択状態だったら」

上記のマクロ文は以下では違うと思いますが、正しいものを教えて下さい。

If ActiveCell.Offset(1, 0) = Selection Then

A 回答 (2件)

こんな感じです。



  Dim rngC As Range
  
  Set rngC = Intersect(ActiveCell.Offset(-1, 0), Selection)
  If Not rngC Is Nothing Then
    MsgBox "選択されています"
  Else
    MsgBox "選択されてません"
  End If


Intersect メソッドを VBA のヘルプで調べてみて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございました。
OKでした。

お礼日時:2006/07/11 15:49

>「もしアクティブセルの一つ上のセルが選択状態だったら」



それは、むつかしいね。そのようなケースは、かなり少ないです。
私は、経験がありません。

理屈では、以下のようなコードになります。

If TypeName(Selection) <> "Range" Or ActiveCell.Row = 1 Then Exit Sub
If Not Intersect(ActiveCell.Offset(-1), Selection) Is Nothing Then
  '実行
Else
  '別の実行
End If

しかし、アクティブセルというのは、1つのセルですから、その上が選択(Selection)状態になっているというのは、もともと、選択された状態ではなくて、選択(Selection)状態の中で、意図的にアクティブセルが動かした結果ですから、本来は、全体の流れを見てみないと、役に立たないかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございました。
OKでした。

お礼日時:2006/07/11 15:49

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