• ベストアンサー

エクセルVBA 現在のセルの4個上のセルの値

こんにちは、 エクセルマクロの質問です。 イミディエイトウィンドウにて 現在のセルの4個上の値を表示しようと以下の文を入力したところエラーになりました。 ?cells(activecell.row-4,activecell.colum).value で 「実行時エラー 438 オブジェクトはこのプロパティまたまメソッドをサポートしてません。」 なぜでしょう? ?activecell.Row-4  ?activecell.colum はそれぞれ 正しく表示されます。

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

  • ベストアンサー
回答No.1

誤:cells(activecell.row-4,activecell.colum).value 正:cells(activecell.row-4,activecell.column).value ではありませんか? あとはrow位置が4以下の場合もエラーになります。

ch20090926
質問者

お礼

うぅ スペルミスでした。 こうゆうミスを自動的に見つけられたらいいんですけどね。 数時間無駄にしちゃいました。 回答ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

質問の記述が、スペル的に正しいなら columーー>column の誤りだけじゃないか。お騒がせ? Sub testt() MsgBox ActiveCell.Row - 4 MsgBox ActiveCell.Column End Sub で確認済み。 すでに回答は出ているが、普通はOffdet を使うよ。 Sub test02() 'ActiveCell.Offset(-4, 0).Select セル選択だけ MsgBox ActiveCell.Offset(-4, 0) '値を取る End Sub ただし5行目以下のセルをアクチブにしていないとエラーになるから、コードとしては、不安定です。チェックを入れる必要があると思う。 VBAはまだ学習が始めて間もないのかな。 綴り的にはBottomとかColumn、Buttonは迷うよね。

ch20090926
質問者

お礼

for i=1 to 20 マクロを学習→挫折 next i こんな感じでやってます。  スペルミスとは恥ずかしい・・・ 

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

>エラーになりました。 >なぜでしょう? という御質問内容に対する直接的な回答では御座いませんが、 >現在のセルの4個上の値を という事であれば、 Activecell.Offset(-4).Value とする方が簡単だと思います。

ch20090926
質問者

お礼

offset があったんですね ありがとうございました。

関連するQ&A