重要なお知らせ

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

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

以下、コードにて、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)")

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (1件)

こんにちは



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

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

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

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

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

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