| 
    
     |  | ▼杏子 さん: 
 こんにちは
 
 ↑でリコメンドしたことは横に置き、今回のテーマの扱い方としては
 kanabunさんのコードのようなReplace処理が非常にわかりやすいですね。
 
 ただ、杏子さんにとって、かえって理解がしにくい、あるいは既存のコード資産が
 アップされたような構成になっていて、がらっと変更するのががこわいということも
 あるかもしれません。
 
 たとえば、以下のような手順で、セル.Sormula に入れる文字列を作られてはいかがでしょう。
 
 1.まず、シートの上で、任意の行で、実際の式を入れる。
 これはできますよね。今回の例ではないですけど、仮に、それが
 =IF(I1=J1,VLOOKUP(I1,オーダ明細!A:A,1,0),"×")
 だったとします。
 2.このセルを選択して、先頭に ' (クォーテーション) を入れて文字列にします
 3.このセルを Ctrl/c 。メモ帳などに Ctrl/v で貼り付けます。
 4.メモ帳の上で
 1)まず、変数部分を ●に変えます。
 =IF(I●=J●,VLOOKUP(I●,オーダ明細!A:A,1,0),"×")
 2)次に " を "" に変えます。
 =IF(I●=J●,VLOOKUP(I●,オーダ明細!A:A,1,0),""×"")
 3)次に ● と それ以外を & 連結します。
 =IF(I & ● & =J & ● & ,VLOOKUP(I & ● & ,オーダ明細!A:A,1,0),""×"")
 4)次にに、●以外の部分の最初と最後に " をつけます。
 "=IF(I" & ● & "=J" & ● & ",VLOOKUP(I" & ● & ",オーダ明細!A:A,1,0),""×"")"
 5)最後に、● を実際の変数名に変えます。
 "=IF(I" & intDataCnt & "=J" & intDataCnt & ",VLOOKUP(I" & intDataCnt & ",オーダ明細!A:A,1,0),""×"")"
 5.こうして出来上がったものをコードの Range("K" & intDataCnt).Formula = の後にくっつけます。
 
 Range("K" & intDataCnt).Formula ="=IF(I" & intDataCnt & "=J" & intDataCnt & ",VLOOKUP(I" & intDataCnt & ",オーダ明細!A:A,1,0),""×"")"
 
 
 |  |