• ベストアンサー

ExcelのVBAで自動採番したいのですが

Excel2003のVBAを利用して、例えばコマンドボタンを押した時に、下記のC6の●部分にC列の最大数を検索して自動的に「5」を採番(max+1)入力したいのです。 ただしC2の様に途中に虫食いで空欄があり、またその空欄に後日数字が入る可能性もあります。(C列は多くても40列程度) 数が多くなると採番ミスの恐れがあり、自動化したいのでよろしくお願いいたします。  |A|B|C|D 1|X|テ|1| 2|L|ス| | 3|V|レ|3| 4|Y|フ|4| 5|N|モ|2| 6|S|シ|●| 7|

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

選択した行でいいなら Sub ボタン1_Click() Dim RG As Range Set RG = ActiveCell Range("C" & RG.Row) = Application.WorksheetFunction.Max(Range("C:C")) + 1 End Sub

bluray
質問者

お礼

ありがとうございました。 思っていた通りに出来ました。 他の方のご回答でも処理できましたが、ご回答順でベストアンサーにさせて頂きました。またよろしくお願いいたします。

その他の回答 (4)

回答No.5

こんな感じかなあ Sub test()    If Cells(ActiveCell.Row, 3) = "" Then _    Cells(ActiveCell.Row, 3) = WorksheetFunction.Max(Range("C:C")) + 1 End Sub ボタンや図形を配置して 右クリック マクロの登録

bluray
質問者

お礼

ありがとうございました。 思っていた通りに出来ました。 他の方のご回答でも処理できましたので、今回は回答順で他の方をベストアンサーにさせて頂きました。またよろしくお願いいたします。

回答No.4

Q、ExcelのVBAで自動採番したいのですが・・・ A、単純に最後の番号を控えて置いてプラス1で! >C列の最大数を検索して自動的に「5」を採番(max+1)入力・・・ そんなやり方では上手くいかないのでは・・・。 ここは、セオリー通りに<最後の番号を控えて置いてプラス1>。

bluray
質問者

お礼

ご回答ありがとうございました。 他の方のご回答でうまく処理できました。

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

本質問では番号入力の契機が曖昧です。 自動化ならわざわざマクロで組み込まなくても普通に関数の方が簡単だと思う。 例えば、対象範囲に=IF(入力条件,MAX(対象範囲)+1,"")を設定しておけば よいと思われるが如何でしょうか。

bluray
質問者

お礼

ご回答ありがとうございました。 他の方のご回答でうまく処理できました。

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

マクロを実行したとき,具体的にどこが●のセルだと,どうやって判るようになっているのでしょうか。 作成例: sub macro1() range("C" & range("A65536").end(xlup).row).formulaR1C1 = "=1+MAX(R1C:R[-1]C)" end sub

bluray
質問者

お礼

ご回答ありがとうございました。 他の方のご回答でうまく処理できました。

関連するQ&A