[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロを簡単に』(ゆうと)
すみません教えてください。 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.