|
▼杏子 さん:
>Range("I" & intDataCnt).Formula = _
> "=CONCATENATE(A" & intDataCnt & ",B" & intDataCnt & ",C" & intDataCnt & ",D" & intDataCnt & ",E" & intDataCnt & ",F" & intDataCnt & ",G" & intDataCnt & ",H" & intDataCnt & ")"
>
>Range("J" & intDataCnt).Formula = "=VLOOKUP(I" & intDataCnt & ",オーダ明細!A:A,1,0)"
>
>Range("K" & intDataCnt).Formula = "=IF(I" & intDataCnt & "=J" & intDataCnt & ",""○"",""×"")"
プロシージャの最初で文字列定数を3つ宣言しておく
Const ssI = "=CONCATENATE(A●,B●,C●,D●,E●,F●,G●,H●)"
Const ssJ = "=VLOOKUP(I●,オーダ明細!A:A,1,0)"
Const ssK = "=IF(I●=J●,""○"",""×"")"
と、
上の3行は
Range("I" & intDataCnt).Formula = Replace(ssI, "●", intDataCnt)
Range("J" & intDataCnt).Formula = Replace(ssJ, "●", intDataCnt)
Range("K" & intDataCnt).Formula = Replace(ssK, "●", intDataCnt)
と記述することができます。
本来は 別スレでもアドバイスあるように、
ループする必要などないと思いますけど。
また、
> =VLOOKUP(I●,オーダ明細!A:A,1,0)
一列のVLOOKUP 式ももったいないので、MATCH とINDEXでまとめる
ことが出来そうに思いますけど。
|
|