• ベストアンサー

マクロ 文字で条件に合うもの

添付画像のようにセルに文字が入っている際 セルB8にBBBB セルB9に567 セルB10にううう と入力されていたらD列の4を セルB11に表示させる方法を教えてください。 マクロかもしくは関数でしょうか?

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.2

マクロを使った関数でよければ 添付画像を例に、こんなコードはいかがでしょうか。 Option Explicit Function GetMyCode(MyRg1 As Range, MyRg2 As Range) As Variant  Dim RowCounter As Long    GetMyCode = ""    For RowCounter = 1 To MyRg1.Rows.Count   If ((MyRg1(RowCounter, 1).Value = MyRg2(1, 1).Value) And _     (MyRg1(RowCounter, 2).Value = MyRg2(1, 2).Value) And _     (MyRg1(RowCounter, 3).Value = MyRg2(1, 3).Value)) Then    GetMyCode = MyRg1(RowCounter, 4).Value    Exit Function   End If  Next RowCounter End Function なお、条件に位置する行があっても、 先頭行から下方向に見つけ 最初に見つかった行を対象にしています。 また、見つからなかったら空欄になります。

yyrd0421
質問者

お礼

ありがとうございます。 頂いたコードで目的のことが果たせました。 勉強になります。

その他の回答 (2)

  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.3

>なお、条件に位置する行があっても、 > 先頭行から下方向に見つけ >最初に見つかった行を対象にしています。 >また、見つからなかったら空欄になります。 誤字を訂正 なお、条件に一致する行が複数あっても、 先頭行から下方向に見つけ 最初に見つかった行を対象にしています。 また、見つからなかったら空欄になります。

回答No.1

Excelのバージョンで使える関数などが違いますが、この形は大丈夫だと思います。 if(and)で分岐でしょうか。 B11に =IF(AND(B8=A4,B9=B4,B10=C4),D4,"") と入力すると4が表示されます。 B8=A4であり、B9=B4であり、B10=C4である場合にD4を表示し、どれか違っていたら空白 という事になります。 ご参考になれば幸いです。

yyrd0421
質問者

お礼

ありがとうございます。 目的のことが果たせました。

関連するQ&A

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

    セルを参照するマクロまたは条件書式について教えてください。 シート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つがあります。 宜しくお願いします。

  • エクセルでマクロを作りたいのですが上手くいきません

    エクセルで会社で使うファイルを作成していますが、ファイルサイズが大きくなりすぎたので、こういうマクロが作れないかと調べていたのですが、やり方がわからないので困っています。 わからないのは、入力シートのA列にデータを入力して、シート2のB列に自動的に表示する ことを自動的にやってくれるマクロです。 今はIF関数をシート2に入力している状態ですが、セルに関数を入れる方法だとファイルサイズが大きくなりすぎてしまいます。 (IF関数をあらかじめ入力しておくセル数がとてもたくさんある為) なお、入力シートA列がブランクの場合は、シート2のB列には何も表示されないようにしたいです。 大変困っております。よろしくお願いします。 

  • 可視セルを関数に組み込むマクロ

    Z列に関数を入力するマクロを組みたいです。 最初に、A-D列のみ表示し、E-Y列はグループ化して非表示にしており、 A、B、C、D、Z 列のみ表示されています。 セルZ1に、A1、B1を引数とする関数を入力します。 次に、グループ化を解除し、E-H列のみ表示し、A-D列、I-Y列をグループ化して非表示にし、 E、F、G、H、Z列のみ表示します。 マクロを実行すると、セルZ1に、E1、F1を引数とする関数が入力されるようにしたいです。 グループ化は4列ずつ行い、画面に表示されるのは常に5列のみで、 Z列には、「表示されている第1列と第2列」のセルを引数とする関数を入力するように したいのです。 Z列から見て、表示されている列が変わっていくため、RC形式のセルの単純な相対表示では あらわせません。 よろしくお願いいたします。

  • 文字の入っているセルをカウントしていくマクロ作成

    マクロ初心者です。 文字を検索する列の範囲はD~Fとし、検索開始セルはDとします。 検索結果を表示するセルの先頭セルはAとし、A~Cに結果を表示させます。 もしD2に文字があった場合、A1に”1”を表示させます。 E3に文字があった場合は、A3に”1”を、B3に”1”を表示。 E5に文字があった場合、E列に文字が入ったのが2回目となる為、A5に”1”を、B5に”2”と表示。 上記のように、それぞれの列に何個文字があったのかカウントしていくマクロを作成したいのですが、作成できずに困っています。 よろしくお願いします。

  • 文字列リストから文字列リストの抽出

    A列のリストの文字列に、B列のリストの文字が含まれていたらそれを取り出すにはどうしたらよいでしょうか? ※画像を参照してください。 例:A2セルの文字列にB2~B4の文字が含まれていないかをチェック、含まれていた文字列(B2~B4の内容)をC列に表示する。 関数なら何とかできますが、マクロの知識がほとんどありませんのでマクロが必要になるようでしたら詳しく教えていただければ幸いです。 よろしくお願いいたします。

  • エクセルマクロ  文字の置き換え

    SHEET1のA列B列C列のセル内の文字をD列の#、$、%に置き換え E列に書き出す方法か又はSHEET2又はメモ帳に書き出すマクロを 誰か教えてください。

  • エクセルで数値と文字を指定すると、指定数値分のセル数だけ文字列を表示するには?

    エクセルの文字列表示方法について質問します。 例えば、A1セルに「3」、B1セルに「赤」と入力すると、 A3~A5の「3」つのセルに「赤」と表示されるようなことをするにはどのようにしたら良いか? A1とB1の値を変えると、A3以降のセルに自動表示されるようにするためにはどのようにすれば良いか? できれば、マクロを使わずに既存の関数等を組み合わせて実現できる方法があれば教えていただきたいのですが・・・。  A B C D 1 3 赤 2 3 赤 4 赤 5 赤

  • セル中の文字チェック

    教えて下さい。 マクロ初心者です。 あるセルに入力させたくない文字が複数あります。 (たとえば、半角の / や * などです。) 入力者がそのセルに入力している時、/が入力できない!というのがベストかと思うのですが、入力された後にセル中の文字列をチェックしエラーメッセージを表示出来れば大助かりです。 マクロ、関数どちらでも結構ですので対応方法を教えて下さい。よろしくお願いします。

  • エクセル 条件付き書式について

    お世話になります。 現在、エクセルで工程表(ガントチャート)を作成しています。 添付画像の様なレイアウトで、1日は4分割で時間感覚がわかるようになっています。 B列に開始日、D列に終了日を入力し、 C列・E列に1日の何分割目から開始なのかを入力したら、 自動的にF列以降の工程表に条件付き書式にて色づけされるようにしたいです。 添付画像で言いますと、B~E列に入力したら、水色の色がつくようにしたいです。 ちなみに、F3、B列、D列は「2013/3/4」の様に入力し、 表示形式を変えています。 Excel2010を使用しています。 マクロは良くわかりませんので、条件付き書式で考えています。 条件付き書式内に使用する数式を教えて頂けると助かります。 関数は勉強中なので教えて頂いた関数を自分なりに解読してみて、 解読できない際は、再度質問させて頂くかもしれません・・・。 宜しくお願い致します。

  • Excel 特定の文字列が連続で続いたら非表示

    セル内の特定の文字列が2個以上連続してる場合、連続している文字列を非表示にしたい。 セルに横一列にデータを入力し、=C2&","&D2&","&E2&","& ,,,,, 横の列にはデータを","を入れて文字列を結合したセルを表示させます。 例 データの文字列が1 2 3 4 5と入力されていたら 1,2,3,4,5,,,, と表示され複数セルの入力された文字列が結合した形で表示されます。 これを 1,2,3,4,5 とカンマ","が2個以上連続したらデータの(この場合5)後ろの連続しているカンマを非表示にしたいです。 Excelは2016で、使用できる関数が限られています。 この場合、他の関数の組み合わせで1,2,3,4,5と連続するカンマを非表示にする方法はありますでしょうか。 Excelのシートは添付画像の通りです。 詳しい方いましたら、ご教授下さい。 よろしくお願い致します。

専門家に質問してみよう