dポイントプレゼントキャンペーン実施中!

Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("1月")
Dim ws2 As Worksheet
Set ws2 = ThisWorkbook.Worksheets("2月")

・・・・これが12月のws12まであります。

これとは別のシート(定義名:data)のあるセルには、数字(1~12)
までを入力し、ここの数字によってdataシートからどの月毎のシートに値を転記するかを
分岐させる仕組みのマクロを作成しようとしております。
※数字が7だったら、7月のws7に転記する。

ここで、変数を用いてできれば良いと思うのですが、うまくいきません。
現状、If .... then, elseif .... thenを12個作る方法しか思い浮かばず、コードの量が
膨大になってしまいます。

うまく分岐させる方法をご教示お願いいたします。
エクセル2003を使用しています。

A 回答 (2件)

質問の意味を勘違いしているかもしれませんが、必要なシートのオブジェクトを作れば良いだけでは?



Dim ws As Worksheet
targetsheetname = Worksheets("data").Range("A1") & "月"
Set ws = ThisWorkbook.Worksheets(targetsheetname)
    • good
    • 5
この回答へのお礼

ありがとうございます!実は質問後すぐに自己解決してしまったのですが、
ソースを今後のPGの参考にさせていただきます!

お礼日時:2010/12/06 16:40

一例です。



Sub test()
  Dim ws(1 To 12) As Worksheet
  Dim i As Long, x As Long
  For i = 1 To 12
    Set ws(i) = ThisWorkbook.Worksheets(i & "月")
  Next
  x = Worksheets("data").Range("A1").Value
  ws(x).Range("B1").Value = "このシート!( ̄ー ̄)v "
End Sub
    • good
    • 3
この回答へのお礼

ありがとうございます!実は質問後すぐに自己解決してしまったのですが、
ソースを今後のPGの参考にさせていただきます!

お礼日時:2010/12/06 16:40

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