- ベストアンサー
エクセルで連番をマクロで
- Windows7、エクセル2010でB3から仮にB100まで文字列があるとします。この状態でA3からA100まで1から始まる連番をマクロで実行したい。
- B列のデータの最終行が不定であり、B列にデータがなくなるまでA列に連番をつけたい。現在は手動で連番を入力しているが、マクロで自動化したい。
- 連番をつける作業が頻繁にあるため、マクロができれば助かる。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 Sub sample() Dim i As Long For i = 3 To Cells(Rows.Count, "B").End(xlUp).Row If Cells(i, "B") <> "" Then Cells(i, "A") = i - 2 Next End Sub
その他の回答 (2)
- kybo
- ベストアンサー率53% (349/647)
以下でどうでしょうか? Sub macro() Range("A3").Value = 1 Range("A3").DataSeries xlColumns, xlDataSeriesLinear, , 1, Range("B" & Rows.Count).End(xlUp).Row - 2 End Sub ちなみに、手動操作ですが、A3,A4に1,2と入力し、A3:A4を選択した状態で、+ボタン上でダブルクリックすると、データのある範囲すべて連番になります。
お礼
kybo 様 ありがとうございました。お蔭様で解決しました。 ご紹介いただいたものはすべて成功しました。 大切に使わせていただきます。 恐縮ですが早めにご回答いただいた方をBest Answerと致しました。 ショートカットまで教えていただいて助かりました。
- keithin
- ベストアンサー率66% (5278/7941)
マクロ以前にエクセルシートの操作で連番を入れる方法を色々知っていると,そのままマクロにも応用できます。 たとえば: sub macro1() dim r as long r = range("B65536").end(xlup).row if r < 3 then exit sub with range("A3:A" & r) .formula = "=ROW(A1)" .value = .value '状況によるけど別に無くてもいい end with end sub
お礼
keithin 様 ありがとうございました。お蔭様で解決しました。 ご紹介いただいたものはすべて成功しました。 大切に使わせていただきます。 恐縮ですが早めにご回答いただいた方をBest Answerと致しました。
お礼
mu2011 様 ありがとうございました。お蔭様で解決しました。 ご紹介いただいたものはすべて成功しました。 大切に使わせていただきます。 恐縮ですが早めにご回答いただいた方をBest Answerと致しました。