• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:通し番号(連番)を返すマクロ)

エクセルのマクロで連番を取得する方法

このQ&Aのポイント
  • エクセルのマクロを使用して、Retsu1の値に連番を書き込む方法について教えてください。
  • Retsu1の値が変化するたびに1から始まる連番をRetsu2に書き込む方法を教えてください。
  • マクロ初心者であるため、Gyou, Retsu1, Retsu2の宣言までしかできていません。続きのマクロを教えてください。

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

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

こんばんは! 色々方法はあるかと思いますが、 一例です。 個人的に For~Next を使うのが好きなので・・・ データはA列の2行目からあるとします。 Sub test1() Dim i As Long If Cells(2, 1) <> "" Then Cells(2, 2) = 1 End If For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 1) = Cells(i - 1, 1) Then Cells(i, 2) = Cells(i - 1, 2) + 1 Else Cells(i, 2) = 1 End If Next i End Sub こんな感じではどうでしょうか?m(__)m

oonots
質問者

お礼

ご回答ありがとうございました。 役に立ちました。また,勉強にもなりました。 For~Nextは初心者でも理解しやすくていいですね。 これからも頑張ってみます。

その他の回答 (2)

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

関数の方が簡単なのでマクロにしなくてもよいのではないでしょうか。 Retu2の先頭に=COUNTIF($A$1:A1,A1)として下方向にコピーしてみて下さい。

oonots
質問者

お礼

ご回答ありがとうございました。 役に立ちました。また,勉強にもなりました。 ただ,今回はマクロで実行しようと考えています。 関数でも簡単にできるんですね。

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

1行目にタイトル行,2行目からデータ A列にグループ番号 B列に123123として sub macro1()  with range("B2:B" & range("A65536").end(xlup).row)   .formula = "=IF(A1<>A2,1,SUM(B1,1))"   .value = .value  end with end sub

oonots
質問者

お礼

ご回答ありがとうございました。 役に立ちました。また,勉強にもなりました。

関連するQ&A