|
▼杏子 さん:
こんにちは
↑でリコメンドしたことは横に置き、今回のテーマの扱い方としては
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),""×"")"
|
|