重要なお知らせ

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

【6/2終了】教えて!goo新規会員登録

以下、コードにて、3つのシートを変数に入れるようとすると
エラーとなります

改善方法ご存じの方は、教えてください

【シート名3つ】
シート名は あ い う


【エラーとなるコード】
Set ws = ThisWorkbook.Sheets("sheetNames(i)")


【コード】
Sub 転記先()

Dim ws As Worksheet

Dim sheetNames As Variant

Dim i As Long

sheetNames = Array("あ", "い", "う")

For i = LBound(sheetNames) To UBound(sheetNames)

Set ws = ThisWorkbook.Sheets("sheetNames(i)")

A 回答 (1件)

こんにちは



>Set ws = ThisWorkbook.Sheets("sheetNames(i)")
指定しているのは「sheetNames(i)」という名称のシートになります。

そうではなくて、変数(=配列)に格納されている名称で指定したいのではないでしょうか?
もしそうなら、右辺を
 ThisWorkbook.Sheets(sheetNames(i))
とすれば良いでしょう。

ただし、対応するシートが実際には存在しない場合は、エラーになります。
    • good
    • 1
この回答へのお礼

いつもありがとうございます
変数なので、""はいらなかったです
うまくいきました。ご指摘ありがとうございます。

お礼日時:2025/04/27 18:47

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

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


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