Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9683 / 76734 ←次へ | 前へ→

【72610】Re:入れ子
発言  UO3  - 12/8/28(火) 12:31 -

引用なし
パスワード
   ▼杏子 さん:

こんにちは

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

3 hits

【72599】入れ子 杏子 12/8/28(火) 8:07 質問
【72600】Re:入れ子 kanabun 12/8/28(火) 9:06 発言
【72601】Re:入れ子 kanabun 12/8/28(火) 9:12 発言
【72609】Re:入れ子 UO3 12/8/28(火) 11:59 発言
【72610】Re:入れ子 UO3 12/8/28(火) 12:31 発言
【72611】Re:入れ子 杏子 12/8/28(火) 12:50 お礼

9683 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free