dポイントプレゼントキャンペーン実施中!

Excelで、データ入力用のシートを作成しています。
ボタンをクリックすると、一番上に行が追加され、そこに入力していくようにするのですが
行を追加したと同時に番号が割り当てられるようにしたいです。

    A   B   C
   番号 日付  名前
1  003  9/2  ●●
2  002  9/1  ○○
3  001  9/1  ●●


例えば、上の状態で、追加ボタンをクリックすると
一番上に、行が新たに追加され自動的にA1に004が入力されるイメージです。

行追加をし、指定のセルに文字を入力することはいろいろ調べてわかったのですが、
連番という形で、一つ下のセルに1を追加した番号を・・・というのがわからず質問をさせていただきました。

どなたか教えていただけませんでしょうか。よろしくい願いいたします。

質問者からの補足コメント

  • ご回答ありがとうございます。
    イメージ通りのことができました。

    ここでまたひとつ質問なのですが、番号を、セルに表示されている通りにコピー貼り付けしたい場合どのようにすればよいのでしょうか。

    (現在、番号列は000スタートになっていますが)
    例えば番号をA000、A001、A002…となるようにした場合
    見た目はA001 …と表示されていても実際にセルを選択すると 
    A001ではなく 1 になるので 見たままのものをコピー、貼り付けしたいです。

    すみませんが、アドバイスよろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2018/09/26 19:24
  • 新しいものが随時足されるようにするので、番号の並びは赤線側のように下から上に増えていきます。

    No.2の回答に寄せられた補足コメントです。 補足日時:2018/09/26 19:27

A 回答 (5件)

No.1です。



数値の前が「A」だとして・・・
A列は数値だけの処理を行い、表示形式で操作してみてはどうでしょうか?

Sub Sample2()
 Dim myMax
  myMax = WorksheetFunction.Max(Range("A:A"))
  Rows(2).Insert
   With Range("A2")
    .NumberFormatLocal = "A000" '//←ココで表示形式を操作しておく//
    .Value = myMax + 1
   End With
End Sub

※ あくまで数値の前は決まった記号?であるコトが前提です。
そして、すでに存在するデータ(A005)などは単に「5」という数値である!とします。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。VBAを勉強し始めたばかりなのでとても勉強になりました。

お礼日時:2018/09/29 20:25

こんにちは



横からですみませんが…
内容がよく把握できないけれど、なんとなくの雰囲気でこんなのでも足りるような気がしますが・・・

Sub Sample()
 Rows(2).Insert CopyOrigin:=xlFormatFromRightOrBelow
 Range("A2").FormulaLocal = "=A3+1"
End Sub

※ A列の値が数値ではない場合は、セル表示はエラー表示(#VALUE!)になります。
 (補足を読む限りでは、数値と推測されますので…)
    • good
    • 0

>例えば番号をA000、A001、A002…となるようにした場合


>見た目はA001 …と表示されていても実際にセルを選択すると 
>A001ではなく 1 になるので 見たままのものをコピー、貼り付けしたいです。

こういうことですか?
----------------------------------------------------
Public Sub 行追加()
Dim str As String
Dim num As Long
If Range("A2").Value = "" Then
str = "A000"
Else
str = Range("A2").Value
End If
num = CLng(Right(str, 3)) + 1
str = Left(str, 1) & Format(num, "000")
Rows(2).Insert
Range("A2").Value = str
Range("B2").Select
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。VBAを勉強し始めたばかりなのでとても勉強になりました。

お礼日時:2018/09/29 20:25

セルのレイアウトは添付図の左側(赤線で囲んだ方)のレイアウトであってますか。

(1行目は見出し行です)

番号の並びですが、必ず左側のように下から上に並んでますか。(添付図の赤線で囲んだ方)
それとも、右側の様なケースもあるのですか。(添付図の青線で囲んだ方)
「Excel VBA 自動で連番をわりふる」の回答画像2
この回答への補足あり
    • good
    • 0

こんばんは!



質問通りだと

Sub Sample1()
 Dim myMax
  myMax = WorksheetFunction.Max(Range("A:A"))
  Rows(2).Insert
  With Range("A2")
   .NumberFormatLocal = "000"
   .Value = myMax + 1
  End With
End Sub

こんな感じではどうでしょうか?m(_ _)m
この回答への補足あり
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A