プロが教える店舗&オフィスのセキュリティ対策術

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|

A 回答 (5件)

こんな感じかなあ


Sub test()
   If Cells(ActiveCell.Row, 3) = "" Then _
   Cells(ActiveCell.Row, 3) = WorksheetFunction.Max(Range("C:C")) + 1
End Sub
ボタンや図形を配置して 右クリック マクロの登録
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/11/21 12:02

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


A、単純に最後の番号を控えて置いてプラス1で!

>C列の最大数を検索して自動的に「5」を採番(max+1)入力・・・

そんなやり方では上手くいかないのでは・・・。
ここは、セオリー通りに<最後の番号を控えて置いてプラス1>。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/11/21 11:43

本質問では番号入力の契機が曖昧です。


自動化ならわざわざマクロで組み込まなくても普通に関数の方が簡単だと思う。

例えば、対象範囲に=IF(入力条件,MAX(対象範囲)+1,"")を設定しておけば
よいと思われるが如何でしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/11/21 11:43

選択した行でいいなら



Sub ボタン1_Click()
Dim RG As Range
Set RG = ActiveCell
Range("C" & RG.Row) = Application.WorksheetFunction.Max(Range("C:C")) + 1
End Sub
    • good
    • 3
この回答へのお礼

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

お礼日時:2011/11/21 12:04

マクロを実行したとき,具体的にどこが●のセルだと,どうやって判るようになっているのでしょうか。



作成例:
sub macro1()
range("C" & range("A65536").end(xlup).row).formulaR1C1 = "=1+MAX(R1C:R[-1]C)"
end sub
    • good
    • 1
この回答へのお礼

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

お礼日時:2011/11/21 11:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!