Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9902 / 13646 ツリー ←次へ | 前へ→

【24878】ループカウンタを使ったオブジェクト名の設定 なが 05/5/12(木) 13:19 質問[未読]
【24880】Re:ループカウンタを使ったオブジェクト名... Jaka 05/5/12(木) 13:48 回答[未読]
【24882】Re:ループカウンタを使ったオブジェクト... 小僧 05/5/12(木) 14:14 回答[未読]
【24884】Re:ループカウンタを使ったオブジェクト... なが 05/5/12(木) 14:34 お礼[未読]

【24878】ループカウンタを使ったオブジェクト名の...
質問  なが  - 05/5/12(木) 13:19 -

引用なし
パスワード
   いつもお世話になります。

ループカウンタを使ったオブジェクト名を設定して、
他のシートに代入を行いたいのですが下記のVBAを組んだところエラーが出力されてしまいます。
「SET」したオブジェクト名をなんらかの変数に代入する事は不可能なのでしょうか?
もし可能なのであればどのように記述すればよろしいのでしょうか?
大変申し訳ありませんがご存知の方がいらっしゃいましたらご教示をお願い致します。

Sub test()

Set ins1 = Sheets("新宿")
Set ins2 = Sheets("歌舞伎町")
Set ins3 = Sheets("靖国通り")
Dim aaa As String

For i = 2 To 3
Debug.Print (i)

aaa = "ins" & i
 Debug.Print (aaa)<=問題なくins2と出力
 Debug.Print (aaa.Range("E7"))<=修飾子が不正です。
'ins1.Range("L" & I + 2).Value = aaa.Range("E7")
Next i
End Sub

【24880】Re:ループカウンタを使ったオブジェクト...
回答  Jaka  - 05/5/12(木) 13:48 -

引用なし
パスワード
   こんにちは。

>aaa.Range("E7")
これだとaaaは、シートオブジェクトの変数として定義し、aaaにシートをセットしないとダメです。

文字列だからこうしないとダメです。
Sheets(aaa).Range・・・

因みに
Sheets("ins1").Range・・・
Sheets("ins2").Range・・・ と言う事になります。

最後に変数を文字で参照指定できません。

【24882】Re:ループカウンタを使ったオブジェクト...
回答  小僧  - 05/5/12(木) 14:14 -

引用なし
パスワード
   ▼なが さん Jakaさん:
こんにちは。
ながさんが考えておられるのは、こういった事でしょうか?

Sub test2()
Dim ins(1 To 3) As Object
Dim aaa As Object
Dim i As Long
  Set ins(1) = Sheets("新宿")
  Set ins(2) = Sheets("歌舞伎町")
  Set ins(3) = Sheets("靖国通り")

  For i = 2 To 3
    Set aaa = ins(i)
    Debug.Print ins(i).Range("E7")
  Next
  
  Set aaa = Nothing
  Set ins(1) = Nothing
  Set ins(2) = Nothing
  Set ins(3) = Nothing
End Sub

外していたら申し訳ありません。

【24884】Re:ループカウンタを使ったオブジェクト...
お礼  なが  - 05/5/12(木) 14:34 -

引用なし
パスワード
   Jakaさん、小僧さん。
今回の質問にご回答頂きまして本当にありがとうございます。

小僧さんに回答して頂いた内容が解らずに困っておりました。
Jakaさんの回答の方もオブジェクトにラップしないといけないという所があるんだ!
という事がわかりました。回答頂きまして解決しました。
今後もお世話になると思いますがその時も何卒宜しくお願い致します。

9902 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free