| 
    
     |  | ▼杏子 さん: 
 
 >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でまとめる
 ことが出来そうに思いますけど。
 
 
 
 
 |  |