• ベストアンサー

エクセル VBA 特定文字だけを見て条件分岐

エクセルでVBAを使用してマクロを作っています K0123 K0122 K8888 J8888 L0000 上記のように縦に並んでいるセルにデータをいれて 各データを上から下へと見ていきます。 一つ一つのデータに処理を施すのですが 頭のアルファベットによって処理を 分岐させたいのです、どんな方法が あるでしょうか?

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

頭の一文字はMid(セル,1,1)で取得できますよね。 あとはSelectCaseで分岐させればどうでしょうか。

関連するQ&A

  • エクセルのVBA 条件分岐について

    エクセルのVBAで、条件分岐プログラムを考えております。 セルA1に入力された数値が、 2.0以下は"B1セルの値をC1セルへコピー 数値が 5.0以上の場合は"B2セルの値をC1セルへコピー それ以外の場合は”対象外”と表示させたいのですが ご教授お願いします。 又、条件分岐後の部分『C1セルへコピー』の部分を"マクロ1を実行" "マクロ2を実行"というように、変える様な事も出来ますでしょうか? 以上よろしくお願いします。

  • excel VBAの分岐の書き方について

    excel VBAの分岐の書き方について 列Aに、 ああ  いいい  うううう  ああ いいい ええ ・・・ のようなデータがあるとします。 このときにVBAのフォームで、 ああ いいい うううう ええ をチェックボックスで選ばせ、該当する行のみに処理を行いそれ以外には処理をしない、というプログラムを考えています。 どのように実装するのが正しい書き方でしょうか? 処理すべき行数は200行程度。ああ、いいい・・・等は10種類ほどで可変です。 in演算子で、配列をみれるような仕掛けがあるといいのですが。。。

  • エクセルのマクロで特定の文字があるときだけコピーできるようにしたい

    エクセルのマクロで特定の文字があるときだけコピーできるようにしたい エクセルでこういう表があるとします ココカラ 1 * 2 b 15 3 * 4 d 19 5 e 25 6 * 7 g 35 8 * 9 j 46 10 k 54 ココマデ このような表があるとき、マクロを使ってもしB列に「*」以外の文字(この場合アルファベットのb) があるときは左のセル(2)をずっと下のセルにコピー(仮にA50とします)した後、右のセル(15)をB51にコピー、 次は文字が「*」なのでコピーはせずにd列になったら4と19をC50,D51にコピー・・・ という作業をセルに「ココマデ」と書いているところまで繰り返す、というマクロを作りたいのですが、どうすれば いいのでしょうか?

  • EXCEL VBA シート内の特定のセルに値が入…

    EXCEL VBA シート内の特定のセルに値が入力された際に処理を実行するプログラム EXCELシート内の特定のセルに値が入力された際に処理を実行するプログラムをEXCEL VBAで作成したいと考えています。 EXCELに計測データを取込み、このデータが設定値以外の場合のみ、トリガーを出す様なイメージで使いたいと思います。 どの様に考えれば良いでしょうか?サンプル等ありましたら紹介ください。 上記質問の”トリガー”について補足します。 あるセルに値が入力されたら、マクロを実行するという風にしたいという意味です。 単純にマクロ実行を手動で行うのでは無く、ある値が判定値以外の場合に他アプリケーションを操作したいという意味です。。

  • エクセルで条件分岐させたいのですが

    エクセルは滅多に使わないのですが、用あってエクセルで、 特定のセルに「あ」と入力した時、特定のセルに「1」を出力 特定のセルに「い」と入力した時、特定のセルに「2」を出力 特定のセルに「う」と入力した時、特定のセルに「3」を出力 特定のセルに「え」と入力した時、特定のセルに「4」を出力  ・  ・  ・  ・ 、というようなエクセルを作りたいのですがどのようにしたらよいのでしょうか? 試しに、 =IF(Sheet1!A1="あ",1,IF(Sheet1!A1="い",2,(IF(Sheet1!A1="う",3,(IF(……省略……)))))) と、セルに式を入れていきオートフィルを使うと出来るかな。と思ったのですが、このIF式は制限があって7回以上は繰り返しえ使えないので、8以上の分岐をさせたい時使えません。 VBAでやれるのかな。と思ったのですが、私の頭で理解するには、期日まで時間が足りなすぎて作成できそうにありません。 よろしければ皆さんのお力添えをよろしくお願いします。

  • Excel VBA 条件分岐のスマートな書き方

    すみません。すごく初歩的な質問なのですが、 Excel VBAで以下のような条件分岐をさせたい場合、 もっとスマートな書き方できませんか? 命題 AとBに対して if not A then 処理X end if if not B then 処理Y end if if not(A and B) then 処理Z(この処理の中には処理Xと処理Yの結果が含まれている) end elseifを使った書き方が思い浮かばず、 同じことを何度も書いているようで、もっと上手に書けそうな気がしまして・・・ どなたかご教示頂けたらと思います。

  • Excel VBAについて

    Excel VBAについて ExcelのセルA1に日付データ(yyyy/mm/dd hh:mm)が入っています。 このエクセルファイルを開いている間、セルA1の日付(時分)が更新されたらマクロを実行するようにしたいのですが、どのようにしたらよいのでしょうか。 セルA1の日付データが更新されるタイミングは決まっていません。 セルA1の日付データが更新されたらマクロ実行というのが難しいのであれば、 10秒おきにマクロを実行というようなことができないでしょうか。 ご教授願います。

  • エクセルのVBAで教えてください

    エクセルのVBAで教えてください、セルA1の値をマクロボタンを押すたびに、セルC1から順番にC2・C3・C4・・・・と下に自動的に入力するVBAを教えてください。

  • エクセルVBAでHTML文字を制御する方法

    エクセルVBAを用いてセルの中に入っている「Ç(Cの下に縦の~がついた文字)」などの文字を操作する方法がわかりません。 (掲示板で表現ができない文字ですいません) 例えばセルの中に入っている「Ç(Cの下に縦~)」という文字を「A」に置換するマクロを自動記録にて保存したのですが ActiveCell.Replace What:="C", Replacement:="A", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False と、上記のように「Ç(Cの下に縦~)」が「C」として記録されてしまいます。 他の文字も似た文字に置き換えて記録されてしまうのでマクロを実行しても同じ結果が得られません。 VBEにて「C」の部分に強引に「Ç(Cの下に縦~)」をコピーペーストすると「??」と表示されてしまいます。 HTML文字を制御する方法をご存知の方、どうか方法を教えてください。

  • エクセルで条件付きで罫線の斜線を引きたいです。

    エクセル2007についての質問です。 ある条件のときに罫線の右下がり斜線を引きたいのですが、条件付書式ではできません。 マクロでしなくてはいけないことはわかったのですが、それ以上は進めなくて困っています。 セル(U2)に数字を打ち込んだらセル(I10:J11),(I12:J13),(I14:J15),(L10:Q11),(L12:Q13),(L14:Q15)(結合したもの)にIF関数とINDEX関数を組み合わせて他のシートからセル(U2)に対応するデーターを呼び出しています。 セル(I10:J11)に呼び出した数値が10未満ならセル(L10:Q11)に罫線で右下がりの斜線を入れ、10以上なら右下がりの斜線を消すということが行いたいです。(他の2つの組み合わせでも同様) 当方マクロを組んだことが全くなく本を読んで独学しているのですが、至急必要ということになり当方の技術ではなんともなりません。助けてください。 ちなみにセル(I10:J11)に書いてある関数は=VLOOKUP($U$2,別シート!$A:$I,3,0) セル(L10:Q11)に書いてある関数は=IF(INDEX(別シート!$A$3:$K$400,$U$2,4)=0,"",INDEX(別シート!$A$3:$K$400,$U$2,4)) といったものです。