• ベストアンサー

A列の文字列によってB列への入力を変える

こんにちは。マクロ初心者で、質問なのですが、 エクセルで、A列に入力されている文字列によって、 B列文字を自動で入力するマクロを作成したいのですが、 どのように記述すればよいでしょうか? 例: A列 |B列 |  あ | 01 |A列「あ」の場合、B列の同じ行に「01」  い | 02 |A列「い」の場合、B列の同じ行に「02」 といった感じです。 初歩的な質問で申し訳ございませんがご教授願います。

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

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

意味がわかりませんが,このマクロではダメだと言うことですね。 #参考 A列にデータ記入済みのシートに,回答の通りにマクロを取り付ける A列のデータをコピーし,その場で貼り付ける と,A列のデータを再入力したことになりマクロが実行される 以後はA列を編集する都度,直ちにB列に反映する >マクロの実行をおこなってからマクロが動作する方がありがたかったです やることは一緒なので,あとはあなたが実際にヤリタイコトに応じて適切に応用してください。 手順: 前回回答のマクロを全て漏れなく消去する 改めてALT+F11でVBE画面を出す 挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub macro1()  dim h as range  on error resume next  for each h in application.intersect(activesheet.usedrange, range("A:A"))  select case h.value  case "あ"   cells(h.row, "B") = "'01"  case "い"   cells(h.row, "B") = "'02"  case else   cells(h.row, "B").clearcontents  end select  next end sub ファイルメニューから終了してエクセルに戻る マクロを実行する。

Knyako
質問者

お礼

お手数おかけして申し訳ございません。 大変勉強になりました。 ご回答ありがとうございます。 ベストアンサーに選ばせていただきます。

その他の回答 (1)

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

シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range)  dim h as range  on error resume next  for each h in application.intersect(target, range("A:A"))  select case h.value  case "あ"   cells(h.row, "B") = "'01"  case "い"   cells(h.row, "B") = "'02"  case else   cells(h.row, "B").clearcontents  end select  next end sub ファイルメニューから終了してエクセルに戻る A列に記入する。

Knyako
質問者

お礼

ご回答いただきありがとうございます。 しかし、シートにA列のデータが入力されている状態から B列を入力したいので、マクロの実行をおこなってから マクロが動作する方がありがたかったです。 ご回答いただきありがとうございました。

関連するQ&A

  • Excelで、ある列に入力している文字にa,b,cと付け加えたい

    Excelで次のようなことをする方法を教えて下さい。 一つの列に次のように入力されています。 0001 0001 0001 0002 0002 0003 0003 0003 0003 0004 このあと0005、0006、・・・・と千行ほど続きます。 (上の例では0001が3行、0002が2行続いていますが、 同一のものが何行続くかに規則性は無く、一行のみのものや8行 くらい続くものもあります) これにa,b,cを加えて 0001a 0001b 0001c 0002a 0002b 0003a 0003b 0003c 0003d 0004a というように同じ文字が並んでいる間はa,b,c・・・と付け加えられ 文字が0001から0002などに変化すると付け加えられるアルファベットがaにもどって、そこから文字が変化するまでa,b,cと入力させたいのですが、これを自動的に入力する方法はないでしょうか? よろしくお願いします。

  • エクセルのマクロ(指定列の空白にひとつ上の文字を入力し続ける)

    エクセルのマクロを教えてください。 指定列の空白にひとつ上の文字を入力し続けるマクロです。 A列指定 A2からスタートし、1000行くらいあるデータ 空白があった場合ひとつ上の文字を入力 空白は、2行連続・3行連続となることもあるが大抵は1行空白 この場合、空白セルの上で一番近いデータをコピーする A列のデータは、文字・数字・日付と様々 1000行ある場合もあるが、それ以下の場合もあるので、10行空白が続いたらマクロが自動的に終了 エクセル2003使用 よろしくお願いいたします。

  • A列に特定の文字を入力したら、その行に色がつくようにしたい

    はじめまして。 会社のエクセル2000で、マクロの勉強をしております。 現在事務作業用に表を作っているのですが、下記のことが うまくできません。 ・A列に"済"と入力したら、その行を("済"と入力された行)、  黄色に。 ・A列に"棄"と入力したら、その行を("棄"と入力された行)、  グレーに。 ・A列に入力した文字を消した場合、行の色も空白に戻る。 このようにする為にはどのようにすれば良いでしょうか? よろしくお願いいたします。

  • A列とB列の文字列を検索 結果をA列セル色で変化

    めぐみと申します。 エクセルのマクロのことで質問させて頂きます。 少し複雑ですみません。 A列とB列に文字列があります。 A列に並んでいる文字を1つずつ検索してB列にその文字列があればA列のその文字があるセルを赤色にするというマクロはできますでしょうか? お時間のある方がいらっしゃりましたら教えて頂ければ幸いです。 めぐみ

  • 文字列を取り出す

    A列に[ No.××× ] あああああ・・・と入力されています。 毎回入力される行数が違います(100~300行) B列にNo.×××という文字列だけ取り出すために下記の関数が入っているのですが A列に入力のあった分だけをマクロで処理できませんか。 =LEFT(RIGHT(A2,LEN(A2)-FIND("[ No",A2,1)),8) 現在は300行目までこの関数が入った状態で、エクセルが重い気がします。

  • エクセルリンク元文字列

    エクセルのA列にURLリンクが貼られている文字列が3000行ほどあります。そのURL(例:http://www.***.**.cc/など)の文字列をB列に入力したいのですが、リンクゲット関数か何かあるのでしょうか?またはマクロ(VBA?)とかで処理する方法はあるのでしょうか。 よろしくお願いします。

  • エクセルでA列にある文字が含まれている時、そのB列に固定文字を追加したい。

    エクセルでA列にある文字が含まれている時、そのB列に固定文字を追加したい。 例) A列に東京の文字があれば、そのB列に固定文字を追加する。   A       B 1 東京都港区 2 大阪府 3 東京都    B列の元文字      2 大阪府 ※ B列にすでに文字があるときは、固定文字を前に追加したい。例)固定文字+B列の元文字 ※ B列に文字がなければ、固定文字のみを入れたい。 実行例   A       B 1 東京都港区 固定文字 2 大阪府 3 東京都    固定文字 B列の元文字  エクセルマクロでできる方法を教えてください。 宜しくお願い致します。

  • Excel2003 A1の文字をB1に移すには?

    A1に「あああ」と入力しているときに「B1」に「=あああいいい」という文字を挿入したいのですが、これをマクロで書くとどのようにすればよいのでしょうか? 普通にすればB1列に「=A1&"いいい"」とすれば表示上は「あああいいい」となりますが、文字列として入力を残していきたいです VBA初心者ですのでわからないことだらけで申し訳ありませんが、同じ動作を1000以上する必要があるため、できれば自動化できればうれしいと思います。 よろしくお願いいたします。

  • エクセルに関しての質問です。A列とB列に任意の文字列があり

    A列にもB列にもその文字がある場合、C列にその文字以外の文字を表示させ、B列にしかない文字をD列に表示させる。 (例) A B C D 1 1 3 5 2 2 3 4 4 5 というものは出来ますか?関数でも、マクロでもいいので、とにかく、その文字を摘出したいのです。どなたか違う方法でも良いので、教えて頂きたいです。

  • エクセル 特定の文字列から範囲を指定

    エクセル 名前定義の範囲について質問です。 始まり・終わりの行・列を示す特定の文字列を設定し、 それを元に自動で範囲を変化させるようなことはできませんでしょうか。 例えば、 B1:列ここから D1:列ここまで A3:行ここから A6:行ここまで と書かれていた場合、 名前定義の範囲が自動で「B3:D6」となるような方法を探しています。 なお、 ・列を指定する文字列は必ず1行目に ・行を指定する文字列は必ずA列目に あるという想定です。 極力マクロを使用しない方法で、有効なものがございましたら ご指導のほどよろしくお願いします。

専門家に質問してみよう