• ベストアンサー

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

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

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

サンプルマクロを2つ書きました。Findメソッドを使わないものと、使うものです。どちらも一応動作確認はしてあります マクロはALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。 Sub Macro1() Dim idx As Long For idx = 1 To Range("A65536").End(xlUp).Row   If InStr(Cells(idx, "A").Value, "東京") > 0 Then     Cells(idx, "B").Value = "固定文字 " & Cells(idx, "B").Value   End If Next idx End Sub Sub Macro2() Dim rng As Range Dim adrs As String Set rng = Columns(1).Find(what:="東京", LookIn:=xlValues, Lookat:=xlPart) If Not rng Is Nothing Then   adrs = rng.Address   Do     rng.Offset(0, 1).Value = "固定文字 " & rng.Offset(0, 1).Value     Set rng = Columns(1).FindNext(rng)   Loop Until rng.Address = adrs End If End Sub

vba117
質問者

お礼

早速の回答ありがとうございます。 ネットで調べていたのですが、捜し方が悪いのか分かりませんでした。 動作確認できました。 本当にありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

もっと例を増やして(B列の例も挙げて)説明しないと質問の意味がよくわからない。 大阪府の例は何?2 大阪府は4 大阪府のつもり? 例としてはダブルように見えるが。 こんなもの関数で出来ますよ。 例データ A列   B列  C列 東京都港区&nbsp;&nbsp; aa 固定文字東京都港区&nbsp;&nbsp; 東京都港区&nbsp;&nbsp; 固定文字 大阪府 bb 大阪府 大阪府 大阪府 東京都 cc 固定文字東京都 東京都 固定文字 神奈川県 dd 神奈川県 神奈川県 神奈川県 C列は =IF(ISERROR(FIND("東京",A1)),A1,IF(B1="",B1,"固定文字"&A1)) 式を下方向に複写。 ーー マクロのコードを作ってくれという依頼は、このコーナーの規約違反の恐れがある。 もし上記の質問解釈でよければ 内容が簡単なもの、部分的なものの質問だから、挙げておくが、1例として Sub test01() D = Range("A65536").End(xlUp).Row For i = 1 To D p = InStr(Cells(i, "A"), "東京") If p <> 0 And Cells(i, "B") <> "" Then Cells(i, "D") = "固定文字" & Cells(i, "A") ElseIf p <> 0 And Cells(i, "B") = "" Then Cells(i, "D") = "固定文字" ElseIf p = 0 Then Cells(i, "D") = Cells(i, "A") End If Next i End Sub

vba117
質問者

お礼

回答ありがとうございます。 ご指摘の通り、2 大阪府は 4 大阪府の間違いでした。 また、説明不足で申し訳ございませんでした。 ANo.1 zap35様の回答で解決できました。 また、宜しくお願い致します。

関連するQ&A

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

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

  • EXCELで 文字列に一致しない場合の合計

    以下の表からEXCELの関数でA列から「東京都」の文字列を含む場合のB列の合計値と含まない場合のB列の合計値を出す関数を教えてください。 A      B 東京都港区 200 東京都北区 124 東京都大田区 100 横浜市緑区 99 川崎市幸区 90

  • EXCEL 文字列分割について

    EXCEL2003を使用しています。 1つのセルに文字列が入力されており、 それを決まったバイト数ずつ別のセルに分割したいと考えています。 例)A1の文字列を6バイトずつ分割したい A1:東京都文京区 ↓ B1:東京都 C1:文京区 これを実現する為に B1に「=LEFTB(A1,6)」 C1に「=MIDB(A1,7,6)」という数式を入力しました。 A1の文字列が全角のみ(または半角のみ)なら 上記の数式で問題ないと思うのですが、 分割対象の文字列は全角と半角が混ざっており、 例えばA1の値が 「a東京都文京区」 というようなものだった場合、 B1:a東京 C1:文京 となり、元の文字列にある「都」の文字が消えてしまいます。 元の文字列が上記の様な場合には B1:a東京 C1:都文京 というように値が返されるようにしたいのですが、 どのように実現したらよいでしょうか?

  • A列に入っている文字群の中にB列の字があるかどうか

    Excelでお聞きしたいです。Excel2010です。 マクロはわかりません。 A列に入っている「文字群」の中にB列の字があるかどうか見つける方法はありますか。 たとえばA列に 仲買人元様々需要 飛込例身赤帯 真白身酒用 全国各地好応 多種様集下関難無応 各地当然東京都高級料亭舞込 のように複数の(ランダムの数の)漢字が入っていて B列に 亜 胃 宇 絵 尾 仲 のように字が入っていた場合に 「亜」という字はA列にはないので、「ない」と 「仲」という字はA列にもあるので「ある」と 分かるような関数はありますか。 両方一文字ずつであれば =IF(COUNTIF(A:A,B1),"○","×") が使えたのですが、 複数字ではどうでしょうか。 (やってみてできなかったのですが、それが関数自体が間違っているからなのか、 データに何か不備があるのかがわかりません。) 行は100行ぐらいあります。 よろしくお願い申し上げます。

  • エクセルでA列にある文字をB列で探す

    Excelで、A列に入っている文字(一文字)がB列のどこかに含まれているか、そうでないかを調べるにはどうすればいいでしょうか。 データ例 A B 算 漢字 国 字画 理 文字 社 国字 図 数字 画 画数 となっているときに Bの字画、国字、画数、を見つける方法です。 データが少なければA列を一つ一つ検索していけばいいのはわかるのですが、まとめてできる方法を教えてください。

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

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

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

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

  • エクセルにて列と列を結合した時に、文字が消えてしまいます。

    エクセルにて列と列を結合した時に、文字が消えてしまいます。 たとえばA1とB1にそれぞれ文字が入っていて、それらを消さずに統合することは可能でしょうか? A1大阪府 B1大阪市 A1A2の統合で大阪府大阪市としたいのです。 教えてください。 よろしくお願いします。

  • EXCELでA列とB列の文字が合わせてC列に入るやり方を教えて欲しいで

    EXCELでA列とB列の文字が合わせてC列に入るやり方を教えて欲しいです。 例 A1セルは04+  B1セルは2000 C列に04+ 2000のように作りたいです(真ん中に1個スペース)。 セルが多すぎて、一個ずつやるのは大変時間かかりますので、関数のやり方をご教示ください。 よろしくお願いします。

  • エクセル2000で文字列から数値を抽出したい。

    エクセル2000で文字列から数値を抽出したい。 ワークシートのA列に下記の文字列が入力されています。 A1セル="123456 日本男子 54,321 7,654,321 12,345" A2セル="234567 東京都子 1,234 2,345 5,321" A3セル="345678 大阪太郎 99 689 9,876" データ間はスペースで区切られています。 後方2番目の数値をB列に取出す方法を教えて下さい。 B1セル=7,654,321 B2セル=2,345 B3セル=689 よろしくお願い致します。

専門家に質問してみよう