重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

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

標題のエラーが出ます。理由ご存じの方、教えて下さい

【エラーメッセージ】
実行時エラー '424': オブジェクトが必要です。

【エラーコード】
Set name = Thisbook.Worksheets(シート(i))

【コード⇒シート1から3のA1セルに あいうえお と入力するマクロ】
Sub sheetarrayの配列()


Dim name As Worksheet

Dim シート As Variant

シート = Array("Sheet1", "Sheet2", "Sheet1")

Dim i As Integer

For i = 0 To 2

Set name = Thisbook.Sheets(シート(i))


name.Range("a1") = "あいうえお"

Next

End Sub

A 回答 (3件)

Thisbook.Sheets(シート(i))



ThisWorkbook.Sheets(シート(i))
にしてください。

先頭に
Option Explicit
をつけて実行すると、
Thisbook がおかしいというメッセージを出してくれます。

Option Explicitを付ける癖をつけておくと良いでしょう。
VBEの画面のツール(T)でオプション(O)を選択、編集タブで「変数の宣言を強制する」にチェックを入れておくと、モジュール挿入時、自動的に
Option Explicitが追加されます。


あと、
Array("Sheet1", "Sheet2", "Sheet1")は
Array("Sheet1", "Sheet2", "Sheet3")の間違いかと。
「【マクロ】実行時エラー '424': オ」の回答画像2
    • good
    • 0
この回答へのお礼

ありがとうございます。解決しました
ThisWorkbook.Sheets(シート(i))

以下も単純ミスです
Array("Sheet1", "Sheet2", "Sheet1")

お礼日時:2025/05/04 11:34

こんにちは



単純に「Thisbook」がどこにも定義されずに、いきなり使われているので、「オブジェクトが必要です」と文句を言っているのではないでしょうか?

雰囲気からすると「ThisWorkbook」のつもりなのかな?
    • good
    • 0
この回答へのお礼

ご指摘、ありがとうございます
単純なミスでした
>雰囲気からすると「ThisWorkbook」のつもりなのかな?

お礼日時:2025/05/04 19:08

Dim name as worksheet


の宣言が無いですよ。
    • good
    • 1
この回答へのお礼

お返事ありがとうございます

下のコードに書いたとおりご指摘の
宣言はしています

ただ、宣言の場所とかが悪いんですかね???

お礼日時:2025/05/04 10:18

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