• ベストアンサー

マクロでセル値をAND

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

  • OKBob
  • お礼率94% (97/103)

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答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
質問者

お礼

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

関連するQ&A

  • vbaで特定の文字を加算して項目に数値を表示したい

    下のようなエクセルがあり、特定の文字ごとに加算してその横のセル数値を入れて表示するマクロを作りたいのですがうまくいきません。 xxxxの数や、その項目数は注文によって数が違うのでうまくいきません 解決策がわかる方いらっしゃいましたらご協力よろしくお願い致します。 ◆注文 xxxxx xxxx xxx xxxx ◆注文 xx xxx xxxx xxxx xx ◆注文 xxx xxxxx xx xxx  この表を  ◆注文 1  xxxxx 1  xxxx 1  xxx 1  xxxx  ◆注文 2  xx 2  xxx 2  xxxx 2  xxxx 2  xx ◆注文 3  xxx 3  xxxxx 3  xx 3  xxx という風にしたいです。どうかよろしくお願いします。

  • Excelマクロで複数行を一つのセルにまとめる方法

    会社でデータ管理シートを作成しているのですが、 当方マクロ初心者でして、ちんぷんかんぷんです。 提出期限も明日の定時までに迫り、切羽詰ってきたのでご教授をお願い致します。 シート名「データ」として、以下のシートを作っております。 [No.][分類1][N1][分類2][N2] [内容] [N3][コード1][F1][F2][F3][cd]  1  NA1  X   0   X  商品1 XXXX DATE1 0000 000 0 XXXX   2  NA1  X   0   X  商品2 XXXX DATE1 0000 000 1 XXXX   3  NA1  X   0   X  商品3 XXXX DATE1 0000 000 0 XXXX   4  NA1  X   0   X  商品4 XXXX DATE1 0000 000 1 XXXX   5  NA1  X   0   X  商品5 XXXX DATE1 0000 000 2 XXXX   6  NA1  X   0   X  商品6 XXXX DATE1 0000 000 0 XXXX 大まかに記入するとこの様な形になるのですが、 ボタンを押すと、[F3]が1~9の値の時、[内容][cd]を直前の0の行の[内容][cd]それぞれのセルと結合するマクロを作らなければなりません。 [No.][分類1][N1][分類2][N2] [内容] [N3][コード1][F1][F2][F3][cd]  1  NA1  X   0   X  商品1 XXXX DATE1 0000 000 0 XXXX  **                商品2      *****    ***  XXXX   3  NA1  X   0   X  商品3 XXXX DATE1 0000 000 0 XXXX **                商品4      *****    ***  XXXX **                商品5      *****    ***  XXXX   6  NA1  X   0   X  商品6 XXXX DATE1 0000 000 0 XXXX (「*」は文字位置調整用です) 分かりずらいかもしれませんが、ボタンを押して実行した結果このような状態にしたいのです。 VBAの教科書と共に、うんうん唸りながら色々試してみたのですが、 ただ時間だけが過ぎ、期限が差し迫ってしまいました... どうかお知恵を拝借させて下さい、よろしくお願い致します。

  • excelであるセル内の数値をある文字に変換したい

    excelで、ある列のセルにある数値の内、ある指定範囲内の数値のみある文字列に変換したい場合、どんな方法(関数やマクロ)があるでしょうか? 例として 10 20 100 →XX 1000→XX XX 50 100以上をXX(範囲外)に変換したい

  • エクセルVBAで

    いつもお世話になります。   A     B     C 1 ああ    XXX    東京 2 ああ    X     大阪 3 いい    XXXX   愛知 4 うう    XX    福岡 5 いい    X     横浜 6 うう          神戸 7 うう    XXX    札幌 これを並び替えたいんですが、セルAの『ああ』なら10、『いい』なら5、『うう』なら3、又セルBの『X』一つにつき5を足した数値の小さい順に並び替えたいのですが、VBA上で可能でしょうか? 宜しくお願いします。

  • Excelで、文字列を含むセルの検索をしたい

    Excelで、文字列を含むセルの検索をしたいと思います。 列Aには、探したい文字列(市町村名)が800行入っています。 (1行目)○○市 (2行目)△△町 (3行目)□□□村 ・・・以下続く・・・ 列Bには、検索対象となる文字列(住所)が7000行入っています。 (1行目)XX県XX市XX-XX-XX (2行目)XX県○○市XXXXXX-XXX-X (3行目)XX府XXX郡□□□村XXX ・・・以下続く・・・ このとき、 「列Aにある文字列(市町村名)を含む列B(住所)のセル」を検索したいのです。 (上記の例の場合は2行目・3行目がヒット。) シートや列は追加してかまいません。 件数が多いため、どのように探すと効率的か見当がつきません。どなたかよい知恵をお貸しください。よろしくお願いします!

  • 「-」を入れるExcelマクロ

    Excelで電話番号の表があります。テキストで、電話番号が入力されています。 「xxx-xxxx-xxxx」と「xxxxxxxxxxx」が混在しているので、「xxx-xxxx-xxxx」に揃えたい。 さて、どのようにすればよいでしょうか? 私の、そのリストは、「xxx-xxxx-xxxx」は、全て正しい位置に、「-」が入っているので、修正する必要はありません。 「xxxxxxxxxxx」は、普通の電話の10ケタと、携帯の11ケタが混在しています。 052であれば、052-xxx-xxxx 0561であれば、0561-xx-xxxx に修正したい。しかし、私の、修正したいと思っているリストは、市外局番は、数個です。なので、 052の場合、0561の場合と言ったように、数個分の分岐を作ればよいかなと思っていますが、その方法が判らないので、教えていただけないでしょうか? 関数で作りだしたのですが、なにかとても、複雑な関数になってしまい、訳が分からなくなってしまい、困っています。 私は、マクロの知識が無いのですが、マクロであれば、スマートにできるのは無いかとも思っています。 以上、よろしくお願いします。

  • セルを参照する マクロ? 条件書式?

    セルを参照するマクロまたは条件書式について教えてください。 シートAのセルA1に、ひらがなの【あ】という文字が入力された時 B1セルに入力できる値をシートBのE2からH2を参照 シートAのセルA1に、ひらがなの【い】という文字が入力された時 B1セルに入力できる値をシートBのE3からH3を参照 というのは値のみなら、関数で行えると思いますが 添付画像のようにセルに塗りつぶしがされている際 この塗りつぶしも反映させたいと考えております。 ネットには条件書式でやればという情報はいくつかでていますが あ、い、う にそれぞれ同じ値があるとそれはできないかと思います。 調べたところ、入力規制のリストでは不可能なようなので A1セルに【あ】と入力されていて尚且つB1セルに1と入力されたら オレンジに、2と入力されたら青に・・・ A1セルに【い】と入力されていて尚且つB1セルに1と入力されたら 青に、2と入力されたらオレンジに・・・ のような感じでもよいと考えています。 もちろん指定した範囲内にない文字の場合(例えばB1セルに5を入力)は 塗りつぶしは起こらないでいいです。 マクロなのか条件書式なのかはわからないのですが 上記のようなことができるか教えてください。 ちなみに画像では説明の為 1つのシート内に書いてありますが 実際はシートAとBの2つがあります。 宜しくお願いします。

  • EXCELのデータベース利用について(VBA)

    VBA初心者の者です。 下記の様なEXCELファイルを作りたいのですが、どのようにすれば良いのか まったくわかりません。 ACCESSでの構築が簡単なのかもしれませんが、データ量がそれほど多くないことと 職場にACCESSがないため、可能であればEXCELで構築したいと考えています。 私自身、プログラムの知識がなく、EXCEL VBAのサイトを確認するのですが、いまいち どうすれば良いのかわかりません。 ぜひご教授の程よろしくお願いします。 3つのシートの構成は以下になります。 【入力シート】 A1セルに文字列(A~Z)入力欄 【○○データシート】 A列に A~Z の文字列 B列に 001~100までの数値 C列に 001~100までの数値 D列に 001~100までの数値 E列に 001~100までの数値 例)    A列   B列   C列   D列   E列 1   A   001 2   B   001    002    003   004 3   C   003 4   D   002    003 【▽コマンドシート】 A列に 001~100までの一意の数字 B列に 文字列(コマンド) C列に 文字列(コマンド詳細) 例)    A列    B列    C列 1   001   xx     blank 2   002   xxx△   xxx 3   003   xxxx    x○ 4   004   xxxxx   xxx 【欲しいVBA】 1、入力シートのA1セルに○○データシートのA列に該当するA~Zの 文字列を入力。 2、○○データシートのB列~F列までの数値を参照 3、2の数値において▽コマンドシートのA列に記載ある番号と紐づけを行い、 ▽コマンドシートのB列、C列に記載がある文字列を入力シートのB列、C列にコピー ※コピー時は▽コマンドシートの書式や体裁情報も含めてコピー。 例としては以下になります。 入力シートの A1セルにDを入力した場合は 入力シート    A列    B列    C列 1   D    xxx△  xxx 2        xxxx    x○ 3 以上、ご教授よろしくお願いします。

  • Excel(マクロ)セルのコピーについて

    いつも活用させていただいているものになります。 Excelのマクロを使って下記の内容を実現したいと考えています。 ご教授していただけたら幸いでございます。 (※関数を使わずあくまでもマクロで) <例> Sheet1 A3:鈴木 B4:太郎 A6:様   (↑上記をコピーして以下のように1つにセルに貼り付けたい) Sheet2 A1:鈴木 太郎様  (鈴木と太郎の間にスペース) お手数ですが、教えていただけないでしょうか。

  • セルに入力した数値に自動的に'をつけるマクロを作成した

    お世話になっております。 早速質問です。 エクセルのマクロを作成しています。 いくつかセルに文字や数値を入力し、マクロを実行した時、 自動的にシングルクォーテーションマーク(')を文字や数値の両端に 付けたい(例:aaaaa→'aaaaa')のですが いろいろ探していますが見つかりません。 お力をお貸し頂きませんでしょうか。 よろしくお願い致します。

専門家に質問してみよう