- ベストアンサー
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|
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
選択した行でいいなら Sub ボタン1_Click() Dim RG As Range Set RG = ActiveCell Range("C" & RG.Row) = Application.WorksheetFunction.Max(Range("C:C")) + 1 End Sub
その他の回答 (4)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
こんな感じかなあ Sub test() If Cells(ActiveCell.Row, 3) = "" Then _ Cells(ActiveCell.Row, 3) = WorksheetFunction.Max(Range("C:C")) + 1 End Sub ボタンや図形を配置して 右クリック マクロの登録
お礼
ありがとうございました。 思っていた通りに出来ました。 他の方のご回答でも処理できましたので、今回は回答順で他の方をベストアンサーにさせて頂きました。またよろしくお願いいたします。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
Q、ExcelのVBAで自動採番したいのですが・・・ A、単純に最後の番号を控えて置いてプラス1で! >C列の最大数を検索して自動的に「5」を採番(max+1)入力・・・ そんなやり方では上手くいかないのでは・・・。 ここは、セオリー通りに<最後の番号を控えて置いてプラス1>。
お礼
ご回答ありがとうございました。 他の方のご回答でうまく処理できました。
- mu2011
- ベストアンサー率38% (1910/4994)
本質問では番号入力の契機が曖昧です。 自動化ならわざわざマクロで組み込まなくても普通に関数の方が簡単だと思う。 例えば、対象範囲に=IF(入力条件,MAX(対象範囲)+1,"")を設定しておけば よいと思われるが如何でしょうか。
お礼
ご回答ありがとうございました。 他の方のご回答でうまく処理できました。
- keithin
- ベストアンサー率66% (5278/7941)
マクロを実行したとき,具体的にどこが●のセルだと,どうやって判るようになっているのでしょうか。 作成例: sub macro1() range("C" & range("A65536").end(xlup).row).formulaR1C1 = "=1+MAX(R1C:R[-1]C)" end sub
お礼
ご回答ありがとうございました。 他の方のご回答でうまく処理できました。
お礼
ありがとうございました。 思っていた通りに出来ました。 他の方のご回答でも処理できましたが、ご回答順でベストアンサーにさせて頂きました。またよろしくお願いいたします。