• ベストアンサー

マクロのif文

「もしアクティブセルの一つ上のセルが選択状態だったら」 上記のマクロ文は以下では違うと思いますが、正しいものを教えて下さい。 If ActiveCell.Offset(1, 0) = Selection Then

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんな感じです。   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 のヘルプで調べてみて下さい。

naruue
質問者

お礼

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

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>「もしアクティブセルの一つ上のセルが選択状態だったら」 それは、むつかしいね。そのようなケースは、かなり少ないです。 私は、経験がありません。 理屈では、以下のようなコードになります。 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)状態の中で、意図的にアクティブセルが動かした結果ですから、本来は、全体の流れを見てみないと、役に立たないかもしれません。

naruue
質問者

お礼

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

関連するQ&A