- ベストアンサー
エクセルVBA 現在のセルの4個上のセルの値
こんにちは、 エクセルマクロの質問です。 イミディエイトウィンドウにて 現在のセルの4個上の値を表示しようと以下の文を入力したところエラーになりました。 ?cells(activecell.row-4,activecell.colum).value で 「実行時エラー 438 オブジェクトはこのプロパティまたまメソッドをサポートしてません。」 なぜでしょう? ?activecell.Row-4 ?activecell.colum はそれぞれ 正しく表示されます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
誤:cells(activecell.row-4,activecell.colum).value 正:cells(activecell.row-4,activecell.column).value ではありませんか? あとはrow位置が4以下の場合もエラーになります。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
質問の記述が、スペル的に正しいなら 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は迷うよね。
お礼
for i=1 to 20 マクロを学習→挫折 next i こんな感じでやってます。 スペルミスとは恥ずかしい・・・
- kagakusuki
- ベストアンサー率51% (2610/5101)
>エラーになりました。 >なぜでしょう? という御質問内容に対する直接的な回答では御座いませんが、 >現在のセルの4個上の値を という事であれば、 Activecell.Offset(-4).Value とする方が簡単だと思います。
お礼
offset があったんですね ありがとうございました。
お礼
うぅ スペルミスでした。 こうゆうミスを自動的に見つけられたらいいんですけどね。 数時間無駄にしちゃいました。 回答ありがとうございました。