[[20050606144924]] 『マクロを簡単に』(ゆうと) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロを簡単に』(ゆうと)

 すみません教えてください。
 1月〜12月までのシートがありまして次のマクロを作ったのですが

 1月が
    Sheets("1月").Select
    Range("D1").Select
    ActiveWorkbook.Names.Add Name:="色", RefersToR1C1:= _
        "=GET.CELL(24,'1月'!RC[-2])+NOW()*0"
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "=色"
    Range("D1").Select
    Selection.AutoFill Destination:=Range("D1:D31"), Type:=xlFillDefault

 12月が
    Sheets("12月").Select
    Range("D1").Select
    ActiveWorkbook.Names.Add Name:="色", RefersToR1C1:= _
        "=GET.CELL(24,'12月'!RC[-2])+NOW()*0"
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "=色"
    Range("D1").Select
    Selection.AutoFill Destination:=Range("D1:D31"), Type:=xlFillDefault

 となっています。同じように他の月も同様になってまして1月から12月まで順番にこのマクロを実行します。
 同じ内容の繰り返しなのでマクロを省略したいのですがうまい方法があったら教えてください。(自分では次のように作りましたが動きませんでした。)

 dim i as long

 for i = 1 to 12
    Sheets("i月").Select
    Range("D1").Select
    ActiveWorkbook.Names.Add Name:="色", RefersToR1C1:= _
        "=GET.CELL(24,'i月'!RC[-2])+NOW()*0"
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "=色"
    Range("D1").Select
    Selection.AutoFill Destination:=Range("D1:D31"), Type:=xlFillDefault
 next i

 ダブルクォーテーションに囲まれるとそれはもう変数として見てくれなくなります。
そんな箇所が2箇所ありますね。
Sheets(i & "月").select
こんな感じにすると良いんじゃないですか。
(kenbou)


 ありがとうございます。次のように直してみました。
 実行時エラー1004とでます。
     ActiveWorkbook.Names.Add Name:="色", RefersToR1C1:= _
        "=GET.CELL(24,i & '月'!RC[-2])+NOW()*0"
 でエラーが出ます。
 どこを直せばいいでしょうか?

 Sub Macro()
  Dim i As Long

  For i = 1 To 12

    Sheets(i & "月").Select
    Range("D1").Select
    ActiveWorkbook.Names.Add Name:="色", RefersToR1C1:= _
        "=GET.CELL(24,i & '月'!RC[-2])+NOW()*0"
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "=色"
    Range("D1").Select
    Selection.AutoFill Destination:=Range("D1:D31"), Type:=xlFillDefault
  Next i
 End Sub

 (ゆうと)

 せっかく作ったので掲載させてください。(みやほりん)
 For i = 1 To 12
     ActiveWorkbook.Names.Add _
         Name:=i & "月!色", _
         RefersToR1C1:="=GET.CELL(24,'" & i & "月'!RC[-2])+NOW()*0"
     With Sheets(i & "月")
         .Range("D1:D31").Formula = "=色"
     End With
 Next i

 みやほりんさんが提示してくれましたので、解決と思いますが、まだ少しおかしいですよね。
>"=GET.CELL(24,i & '月'!RC[-2])+NOW()*0"
変数が”で囲まれちゃってますよね。
(kenbou)

 みやほりんさんの作って頂いたマクロでうまく動作しました。ありがとうございました。
 (ゆうと)

 これなら判るかな?
 Sub Test()
 For i = 1 To 12
 msgbox "=GET.CELL(24,i & '月'!RC[-2])+NOW()*0"
 msgbox "=GET.CELL(24,'" & i & "月'!RC[-2])+NOW()*0"
 Next i
 End Sub
違いは押さえてくださいね。(みやほりん)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.