• ベストアンサー

文字を検索し、同行の離れたセルに単語と数値を反映

B列から「○○」という文字を検索し、 (1)該当した行のIセルに「小計」と入力 (2)Jセルに、Cセルの数値に「個」を付けたものを表示させる という作業を延々と繰り返しています。 該当する行はランダムにあります。 並べ替えが出来ない状態なので、VBAなのかな??と思うのですが、 マクロの記録ぐらいしかやったことがなくて…。 良い方法があれば教えて下さい。 お願いします。

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

  • ベストアンサー
  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.3

#2です。 小計はIでしたね。#2の例で言うと、A列に書き込まれてしまうから気をつけてね。

ricky223
質問者

お礼

できました! ありがとうございました!! でも全然解読できなくて、自分の無力ぶりが沁みてきます・・・ f^_^;

ricky223
質問者

補足

ご回答ありがとうございます。 #2の 「Set rgeA = wkA.Cells(lrow, 1) 」を「Set rgeI = wkA.Cells(lrow, 9) 」に 「rgeA.Value = "小計"」を「rgeI.Value = "小計"」に 書き換えればよいのでしょうか?

その他の回答 (2)

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.2

次のような感じかな? #なおマクロに貼り付けるときは全角スペースを置換してね。 Sub sample1()  Dim wkA As Worksheet  Dim rge As Range, rgeA As Range, rgeJ As Range  Dim adr As String  Dim lrow As Long  Set wkA = ActiveSheet    With wkA.Range("B:B") 'B列のみ検索   Set rge = .Find("○○", LookIn:=xlValues)   If Not rge Is Nothing Then    adr = rge.Address '最初の位置を登録    Do     lrow = rge.Row '行取得     Set rgeA = wkA.Cells(lrow, 1) 'A列     Set rgeC = wkA.Cells(lrow, 3) 'C列     Set rgeJ = wkA.Cells(lrow, 10) 'J列     rgeA.Value = "小計"     rgeJ.Value = CStr(rgeC.Value) + "個"     Set rge = .FindNext(rge) '次を検索     'rgeが検索されないか,最初の位置に戻っていないか    Loop While Not rge Is Nothing And rge.Address <> adr   End If  End With End Sub

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

ご質問の回答になるか疑問な所もありますが・・・ Iセルに =IF(B1=○○,"小計","") Jセルに =IF(B1=○○,C,"") セルの書式設定で表示形式をユーザー定義 #個 とする でいかがでしょうか?

ricky223
質問者

補足

ご回答ありがとうございます。 ごめんなさい、書き忘れていましたが、 I, J列とも、データが入力されている行もあるんです。 なので、すべてのセルに関数の貼り付けが出来ないんです・・・。

関連するQ&A

  • VBAで任意の文字の右隣のセルの結合を解除したい

    エクセルの初心者です。VBAで困っています よろしくお願いします。 VBAで任意の文字を探し 右隣のセルの結合を解除したいのです。 その文字は必ずC列の中に2つあります。行はランダムで毎回違います。 作業の途中までのマクロは記録コマンドで作成し、ボタンも作成してあります。 できましたらなにぶん初心者ですので、分かりやすいシンプルなものを… これができれば後はまた記録したマクロにて作業ができます。 アドバイス よろしくお願いします!

  • 最も近い数値のあるセルを探す

    お願いいたします。 エクセルVBAです。 例えばC列に10000行以上にわたって数値が不作為に 並んでいるばあい、347.398に一番近い数値の あるセルの行を求めるコードはどのようになりますか? ご教示お願いいたします。

  • ランダム数値によるセルの塗りつぶし

    A列のセルに1~20のランダムな数値が入っています。 この数値xに従い、右セルx個に○を入力したいのですが可能でしょうか 例: A1セルに「3」と入っていれば B1から右3セル(B1,C1,D1)セルに"○"を入力する

  • VBAで任意の文字のその上の行を全て行削除したい

    エクセルのVBAで困っています よろしくお願いします。 VBAで任意の文字を探し その上の行を全て行削除したいのです その文字は必ず2~30行の中にあります。列はJからですが、行はランダムで毎回違います。 作業の途中までのマクロは記録コマンドで作成し、ボタンも作成してあります。 これができれば後はまた記録したマクロにて作業ができます。 アドバイス よろしくお願いします!

  • VBAマクロ・・同一セルの検索と検索したセルの操作

    VBAマクロ・・同一セルの検索と検索したセルの操作  VBAのほぼ初心者です。  決められたセル(たとえばE100)に入力された文字列と同一の文字列を その列内の上(E1~E99)で検索する。 そして、検索できれば(たとえばE30)そのセルがある行(行30)を削除する。 なお、複数検索されれば、検索されたすべてのセルに対応する行を削除する。  というようなことをVBAのマクロで作成したいです。 FindメソッドとDo..Loop Whileを使って試行錯誤してみたのですが、うまくいきません。。  いい方法があれば、是非教えていただきたいです。  どうぞよろしくお願いいたします。

  • 数値入力で簡単に該当のセルへ移動できませんか?

    エクセル2007(2010)です。 行が名前(約50名)、列が1~12月となっています。 「3月、山田、500万」という伝票があります。 伝票はランダムに出てきますので、毎回名前を探して、該当のセルに数値を入力します。 そんなに量が多くないので、毎回スクロールして探していますが、 簡単に該当のセルに飛ぶ方法はないものでしょうか? それが出来たら他の表にも応用したいと思っています。 宜しくお願いします。

  • エクセルで連続検索しセルに色をつける。

    エクセルでShieet1J列10からBB10000までのセルに4桁の数値(重複あり)がランダムにあります。 この4桁の数値をShieet2のA列1からA列100に入力した数値から検索してセルに色をつけたいのですが 良い方法はありませんでしょうか。 現在はエクセルの置換え機能を使ってますが毎日200くらいの作業があり、困っております。                                 宜しくお願いいたします。

  • 総計をエクセルVBAで出すには。。

    A列にいくつかランダムに小計が入っておりB列の数値をA列の小計が入っている 行まで数式で足しています。 例=SUM(B16:B20)   A列の最終行に総計が入っているのですが総計にはB列のいくつかの小計行を 足して総計を出したいです。 小計を出すにはこちらで教えて頂き、VBAで自動でいれることができたのですが 総計をいれることができません。 VBAではどのように組めばいいのでしょうか?

  • セル内の文字列操作について

    Excelでセル内の文字列を操作したいのですが、Excelの標準の関数では出来そうにないので、どなたかお力をお貸しください。 1つのセル内に、文字列や数値が複数入っています。 (例) Excel 12 りんご Word 11 このセルを調べて、数値のデータが複数入っている場合、最大値のみを表示させ、残りの数値データは削除したいのです。 (結果) Excel 12 りんご Word この処理の対象はセル内の数値データであって文字列には作用させず、結果的には文字列はそのまま表示させたいのです。 Excelの文字列に関する関数を調べてみたのですが、該当するものがなく、VBAを使用しなくてはならないのかもしれません。処理するデータが大量なため、VBAマクロなどで処理できれば大変ありがたいのですが、どなたかご存知の方がいらっしゃいましたら、ご教授くださいませ。どうぞよろしくお願いいたします。

  • エクセルの文字列の数値を足す

        A    B     C      D   合計 1  ああ8  いい8  ああ6  ああ2   8 と、10列くらいある行(A列からJ列まで)があります。 ひとつのセルに文字と数値が入っています。 で、「ああ8」と「いい8」以外の数値を足したいんです。 上の場合、C列の「ああ6」とD列の「ああ2」を足して「8」になります。 毎回、手作業で足しているのですが、結構な手間で。。 何かいい案があればと思い、こちらへ投稿させていただきました。 オフィス2007を使用しています。ご教授ください。

専門家に質問してみよう