• ベストアンサー

マクロでセル値をAND

xxx3xx3x x2x313x1 2x2132xx  sheet1 x2x122xx 1xx22x3x x1x33321  sheet2 xxx1xxxx xxx22xxx xxx333xx  sheet3 上記のようなデータがあり、各文字はセル1つずつに入っています。 sheet3はsheet1とsheet2のANDであり、片側がxならばsheet3ではx、 違う数値同士ならばsheet2の値を活かす としています。 これを実現するマクロの例を1つ挙げて頂ければと思います。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>sheet3はsheet1とsheet2のANDであり、… フム。。?? 作成例: sub macro1()  dim Target as range  set target = worksheets("Sheet1").range("A1:H3")  ’あるいは  ’set target = worksheets("Sheet1").range("A1").currentregion  with worksheets("Sheet3").range(target.address)   .formula = "=IF(COUNT(Sheet1:Sheet2!A1)=2,Sheet2!A1,""X"")"   .value = .value  end with end sub #「絶対マクロじゃなきゃイヤ」というんじゃなければ,シート3のA1に =IF(COUNTA(Sheet1:Sheet2!A1)<2,"",IF(COUNT(Sheet1:Sheet2!A1)=2,Sheet2!A1,"X")) のような式を入れて,近所のセルにコピーして貼り付けておいてください。

OKBob
質問者

お礼

回答ありがとうございます。 やはりワークシート関数も盛り込まないと難しいですよね? というか、使わずにやるとかなり長めのコードになってしまいます。 今後もよろしくお願いします。

OKBob
質問者

補足

あぁぁぁぁ、、、、 ズレた事を口走ってしまいました。 無視して頂いて助かりました! アンドーです

その他の回答 (1)

回答No.1

sheet3のA1に以下の計算式を入力して、縦横にコピーすればOKです。 =IF(Sheet1!A1<>"x",IF(Sheet2!A1<>"x",Sheet2!A1,"x"),"x")

OKBob
質問者

お礼

素早い回答ありがとうございました。 今後もよろしくお願いします。