|
提示されたコードがすでにVBA(マクロ)なんですけど。
再計算を一時とめてみました。
ただ、それほど早くはならないだろうし、再計算をとめる事で計算順序が変わることがあるだろうか?は、今まで調べたことがないのでなんとも?
不安なら、数式を書き込む範囲ごとに手動、自動を分けてみるとか。
FstCal = Application.Calculation
Application.Calculation = xlManual
Range("C12").FormulaR1C1 = "=IF(RC1="""",,MIN(MAX(R11C,VLOOKUP(R7C2&RC1,date!C1:C8,6,FALSE)),
VLOOKUP(R7C2&RC1,date!C1:C8,7,FALSE))-
MAX(MIN(R9C,VLOOKUP(R7C2&RC1,date!C1:C8,7,FALSE)),
VLOOKUP(R7C2&RC1,date!C1:C8,6,FALSE)))"
Range("C12").AutoFill Destination:=Range("C12:R12"), Type:=xlFillDefault
Range("V12").FormulaR1C1 = "=IF(RC1="""",,VLOOKUP(R7C2&RC1,date!C1:C8,8,FALSE))"
Range("U12").FormulaR1C1 = "=IF(RC1="""",,VLOOKUP(R7C2&RC1,date!C1:C9,9,FALSE))"
Range("B12").FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(RC[-1],date!C[2]:C[3],2,FALSE))"
Application.Calculation = xlAutomatic
Application.Calculation = FstCal
Doevents
Range("B12:W12").Copy
Range("B13:B69").PasteSpecial
|
|