• ベストアンサー

隣りの列の文字を認識して連番を記入したい

エクセル VBAで隣りの列の文字を認識して連番を記入するには どのようにすればよろしいでしょうか? 例えば、B列に文字や数字が適当にセルをあけて書いてあります。 この場合B列の文字や数字を認識して、文字、数字がある箇所のA列に 連番を記入するにはどのようにVBAのコードを記入すればよろしいでしょうか? (図を参照ください) 回答よろしくお願い致します。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 色々やり方はあるかと思いますが・・・ 一例です。 Sub test() Dim i As Long, k As Long For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row If Cells(i, 2) <> "" Then k = k + 1 Cells(i, 1) = k End If Next i End Sub こんな感じではどうでしょうか?m(_ _)m

n151713m
質問者

お礼

勉強になります。 早々回答ありがとうございます。

その他の回答 (2)

回答No.3

一例です. Sub sequence() Dim c As Range Dim i As Long Dim n As Long Range("A:A").ClearContents 'A列の内容をクリア n = WorksheetFunction.CountA(Range("B:B")) 'B列で入力済みのセルの個数を数える. Set c = Range("B1") For i = 1 To n Set c = c.End(xlDown) c.Offset(0, -1).Value = i Next i End Sub

n151713m
質問者

お礼

回答ありがとうございました。 勉強になりました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 Sub sample() Dim cnt As Long, a As Range On Error Resume Next For Each a In Columns("B").SpecialCells(xlCellTypeConstants) cnt = cnt + 1 Cells(a.Row, 1) = cnt Next End Sub

n151713m
質問者

お礼

回答ありがとうございました。 勉強になりました。

関連するQ&A

  • 文字列が同じ場合、セルに色を塗りたい

    エクセル VBAでリストにある文字列と他のセルの文字列が末尾まで完全に同一の場合、 セルに色を塗るにはどのようなコードを記入すればよろしいでしょうか? 具体的には下記のような動きができればと考えております。 G列にリストがあります。(G列のリストの数は変動します) このリストの文字列とB2:B7とE2:E7の範囲の文字列が末尾まで完全に同一の場合、 B2:B7とE2:E7のセルに黄色で色を塗る。 また、リストにはあるけど、B2:B7とE2:E7のセルにない文字列がある場合、 リストのその文字列があるセルに緑で色を塗る。 上記のような動きをするには、エクセル VBA でどのようなコードを記入すればよろしいでしょうか? エクセルは2010及び2007を使用しております。 よろしくお願いします。

  • B列の値を参照して、A列に連番を振る方法

    A・B・C列があり、A列には連番を、B列にはVLOOKUP関数が入っており、 C列には、B列の検索値が入っております。 B列は下記のVBAコードで同じ値をセル結合させています。 Sub 結合() Dim rngU As Range Dim i As Range Dim rngB As Range Dim Key As String Set rngB = Range("B2") Set rngU = Range(Range("B3") _ , Range("B6000").End(xlUp).Offset(1)) Application.DisplayAlerts = False For Each i In rngU If Not i.Text = Key Then If (Not i.Offset(-1) Is rngB) And _ (Not i Is rngB) Then Range(rngB, i.Offset(-1)).MergeCells = True End If Set rngB = i End If Key = i.Text Next i Application.DisplayAlerts = True End Sub そこで、A:3から連番を振りたいのですが、B列の決まった特定の結合セルの 隣のA列のセルもB列の決まった特定の結合セルと同数にセル結合させ、 連番を1つとしてカウントしたいのです。 また、A列にはB列同様にVLOOKUP関数が入っており、連番を振りたくないセルには 印が付くようにしています。 行数やB列の決まった特定の結合セル番地はランダムに変わるため、B列の結合セルで参照させるしか ないのかなっと思っております。 B列の特定の結合セルの値は決まっております。 上記のような処理を自動にさせるためのVBAが分かる方がいらっしゃいましたら、 是非ご教授お願いいたします。

  • エクセルの文字列としての数値

    エクセルでは「’」を付けるか、セルを文字列とするかで、数字を文字列として認識させられるようですが、ここで文字列として認識された数値はASCIIにおける、文字列としての数認識コードとやはり同じなのでしょうか?それともエクセル独自のものと解釈した方がよいのでしょうか?

  • エクセルで数字の文字列を計算させたくないのですが、うまく出来ません。良い方法はないでしょうか?

    エクセル2003で、下記のようにセルに入力したとします。    A   B   C 1  10   20 2  11  ’21 3  13   14 4 ※B2は「’」をつけて数字の文字列として認識させています。 B4のセルに、=SUM(B1:B3)とすると、うまく34となってくれますが、 C2のセルに、=A1+B2とすると、32となってしまいます。 当方としては、B2を文字と認識してほしいので、求めている答えは11です。 数字の文字列を文字列のまま処理して、計算させない方法はあるでしょうか? 皆様、ご教授願います。

  • (VBA)対応する番号の下に行挿入して文字列を追加

    以下を行うVBAのコードを知りたい シート名「Extra」のA列に文字列が複数行に渡って記入されています 必ずA1は1で数行後に2と以後連番が続く形式です。 Sheets名「Time」は、 A列に1から始まる連番 B列にA列に対応する文字列が対であります。 やりたいことは、 「Time」のA列の連番と「Extra」にある同じ連番行の一つ下に行を挿入して 「Time」のA列と同じ行のB列の文字列を書き込みです。 例えば、「Extra」が 435 ABC で 「Time」 435 123456 ならば 「Extra」を以下のように書き換える 435 123456 ABC 判りにくい内容でしょうがよろしくお願いします。 ’-----------------------------------------

  • エクセル 関数 001 002と文字列で表示した

    お世話になります。 XP/ エクセル2003 使用です。 エクセルの関数で、 数字を3桁で数字を表示したく 下記のように関数を組みました。 (セルの書式は、文字列にしています) 001の場合  =IF(A1="","","001") とし、001が問題なく返ってきます。 次のセルに、002と連番を振っていきたいので  =IF(A2="","",B1+1) としましたが、   2  (002ではない) と返ってきます。(書式は文字列) 002、003、004・・・と続けていきたいのですが、 どのようにすればよろしいでしょうか? ご多用中恐れ入りますが、 よろしくお願いします。

  • エクセル 文字列から数字だけを抽出

    エクセル2016の操作について教えて下さい。 セル内の文字列から数字だけを抽出したいです。 例えばAの列にこのような文字列が入っているとします。 高度5km 高度10.1km この中の数字だけを取り出して隣のB列の同じ行に数字だけを表示させる方法がありましたら教えて下さい。 宜しくお願いします。

  • エクセルで隣同士の列の文字を合わせたい

    こんにちは。 いつもこちらで助けていただいてありがとうございます。 今日の質問は。。題名のとおりなのですが 2列でそれぞれの 列に入った文字を1列の中で合わせたいのです。 たとえばA列の一つのセルに「対象者」と入っていて、B列の隣のセルに 「山田太郎」などと入っている場合で、「対象者山田太郎」と A列のセルの中に一つにまとめたいのですが 関数などで処理できるでしょうか?初歩的な質問ですみません。 データが膨大にあるので何かいい方法があったらと思っています。 よろしくお願いいたします(><)!  

  • Excel2007での自動連番の振り方

    Excel初心者です。 自動連番の振り方を教えて下さい。 宜しくお願いします! A列に連番 B列に文章 を入力したいのですが A1のセルが「1」として B1のセルに文字を入力したときに A2のセルに自動的に「2」と表示される B2のセルに文字を入力したときに A3のセルに自動的に「3」と表示される ↓ 以下、同じ方式で自動的に連番が振られていく・・・ この方法をご存じの方がいらっしゃいましたら、 ご回答宜しくお願いいたします。

  • エクセルのA列に、結合セルを飛ばして連番を付ける

    エクセルのA列に、A列とB列を結合して文字を入力しているセルを飛ばして、連番を付けたいのですが。例えば  1 今日は良い天気だ。  2 明日は雨だ。  <あああああ>  3 ・・・・。  4  5  6  <いいいいい>  のような感じなのですが。A列に連番を振った所が順次増えたり減ったりするので、一々振りなおすのが大変です。よろしくお願いします。

専門家に質問してみよう