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

初心者です。参考書に沿ってVBAの勉強をしています。

Sub test()
ThisWorkbook.Worksheets("Sheet1").Cells(1.1)="VBA"
Next i
End Sub

こちらを標準モジュール内に書き込んだところ題名のようなエラーが発生しました。
VBAに慣れている方に相談したのですが、その方もわからないようなのでこちらに質問させていただきました。
シートの名前は正しいはずです(初期から変更していません)

アドバイスお願いします

A 回答 (2件)

こんばんは。



答えは、#1さんの回答自体は、完璧だと思います。

しかし、
>「実行時エラー424、オブジェクトが必要です」
ということで、ミスタイプ自体は直したとします。
(添付画像 参照)

私も、VBAは、10年以上やっていて、それ相応に分かっているつもりでしたが、ご質問内容では、同じく分かりません。親オブジェクトから書く方法を、コンテナ型といいますが、その時に、実行時エラー '424'として発生するのは、親オブジェクトが見つからない場合だけです。

しかし、Excelでそのような現象になるとのは、今のところ思いつかないのです。
http://officetanaka.net/Excel/vba/error/executio …
このリンク先とは違うように思います。

原因のひとつとして考えられるのは、まず、アプリケーションそのものが違っているというとこです。ThisWorkbook が違っている場合です。つまり、Wordなどの別のVBAで実行しようとしていると考えられます。Excelだとすると、今は、原因を思いつきません。今までも、初心者の方のご質問は、非常に難問なものが多いような気がします。

以下はWordの標準モジュールで実行した場合です。なお、Cells(1.1) は、小数点以下が丸められますので、Cells(1)の意味ですが、Cells(1.5)は、2になって、B1を意味します。もしA1,A2 と書くのなら、カンマを入れて、Cells(1,1) Cells(2,1) と書くようにします。
「(初心者です)VBAについて。「実行時エ」の回答画像2
    • good
    • 1

こんにちは。



コードを拝見しましたが、まず、「i」の型を宣言しなければいけません。
また Cells(行,列)は「,」で区切る必要があります。

この場合、Next i とは For ...Next のように繰り返す動作をさせたいのでしょうか。
例えば、セルの「A1」から「A5」まで下方向に「VBA」と繰り返し5回入力させるとします。

Sub test()
Dim i As Integer
For i = 1 To 5
Sheets("Sheet1").Cells(i,1) = "VBA"
Next i
End Sub

ご質問に対する回答はこのようなものでよろしかったでしょうか。
検討違いでしたら、申し訳ございません。
ご確認ください。
    • good
    • 2

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A