Excelで、データ入力用のシートを作成しています。
ボタンをクリックすると、一番上に行が追加され、そこに入力していくようにするのですが
行を追加したと同時に番号が割り当てられるようにしたいです。
A B C
番号 日付 名前
1 003 9/2 ●●
2 002 9/1 ○○
3 001 9/1 ●●
例えば、上の状態で、追加ボタンをクリックすると
一番上に、行が新たに追加され自動的にA1に004が入力されるイメージです。
行追加をし、指定のセルに文字を入力することはいろいろ調べてわかったのですが、
連番という形で、一つ下のセルに1を追加した番号を・・・というのがわからず質問をさせていただきました。
どなたか教えていただけませんでしょうか。よろしくい願いいたします。
No.3ベストアンサー
- 回答日時:
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
No.5
- 回答日時:
こんにちは
横からですみませんが…
内容がよく把握できないけれど、なんとなくの雰囲気でこんなのでも足りるような気がしますが・・・
Sub Sample()
Rows(2).Insert CopyOrigin:=xlFormatFromRightOrBelow
Range("A2").FormulaLocal = "=A3+1"
End Sub
※ A列の値が数値ではない場合は、セル表示はエラー表示(#VALUE!)になります。
(補足を読む限りでは、数値と推測されますので…)
No.4
- 回答日時:
>例えば番号を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
No.2
- 回答日時:
セルのレイアウトは添付図の左側(赤線で囲んだ方)のレイアウトであってますか。
(1行目は見出し行です)番号の並びですが、必ず左側のように下から上に並んでますか。(添付図の赤線で囲んだ方)
それとも、右側の様なケースもあるのですか。(添付図の青線で囲んだ方)
No.1
- 回答日時:
こんばんは!
質問通りだと
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) EXCEL ActiveX コマンドボタンで実行する前にいったんmsgBoxで確認を求めたい 1 2022/07/06 19:41
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) エクセルのマクロコードの一部分を変更する方法について教えてください。 2 2023/02/17 08:40
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
ExcelのVBAで連番を振る。
Excel(エクセル)
-
Excel VBAで条件ごとの自動採番について
Excel(エクセル)
-
excelVBA 項目ごとに連番をふりたい
Excel(エクセル)
-
-
4
エクセルVBAを使ってセルに日付+通し番号を入力したい
Excel(エクセル)
-
5
【VBA】 通し番号の入力について
その他(Microsoft Office)
-
6
ExcelのVBAで自動採番したいのですが
その他(Microsoft Office)
-
7
[Excel VBA]空白セル以外に連番をつけるマクロを教えてください
Excel(エクセル)
-
8
【vba】指定範囲の中に任意の文字があるときの条件分岐
Excel(エクセル)
-
9
VBAで文字列を数値に変換したい
Excel(エクセル)
-
10
Excelの表に自動でナンバリングしたいです。
Excel(エクセル)
-
11
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
12
エクセルマクロで「1」を「01」に変換したい
Excel(エクセル)
-
13
マクロ 実行ボタンを押さずに常に実行
Excel(エクセル)
-
14
エクセル マクロ 最終列までを全選択
Excel(エクセル)
-
15
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
16
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
17
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
18
VBAで「セルに何か入っている場合」
Windows Me・NT・2000
-
19
EXCEL VBAマクロ作成で、他のEXCELからデータを取り込みたい
Windows 10
-
20
《エクセルVBA》「他の人が該当ファイルを使用中の場合」の処理
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのチェックボックスを...
-
エクセルで数字から名前に変...
-
エクセル 条件が成立した場合...
-
Excel:セルに入力されている日...
-
エクセルで縦書きルビの付け方
-
配列の逆行列が求められない(M...
-
excelセル内の掛け算計算方法
-
エクセルで漢字を数字に変換す...
-
Excel関数 「日付を入力...
-
エクセル関数で…
-
エクセルでのNULLという文字列...
-
ワードで文字がセルの下にもぐ...
-
エクセル、 3×5センチのセル...
-
エクセルでのセルをまたぐ文字...
-
pages で「テキストを左右両端...
-
エクセルのセル内での改行(マ...
-
エクセル関数で数式のないとこ...
-
エクセル2007 番地の並び替え...
-
上付き文字を別セルにそのまま...
-
excelの組合せ計算について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのチェックボックスを...
-
エクセルで数字から名前に変...
-
エクセルでのセルをまたぐ文字...
-
Excel関数 「日付を入力...
-
Excel:セルに入力されている日...
-
エクセル 条件が成立した場合...
-
エクセルでのNULLという文字列...
-
VBAで「セルに何か入っている場...
-
エクセルで縦書きルビの付け方
-
折り返して表示、縮小して表示...
-
エクセルで漢字を数字に変換す...
-
pages で「テキストを左右両端...
-
(EXCEL)CELLの色をカウントす...
-
Excel:複数セルの計算値を一気...
-
エクセル関数で…
-
エクセルについて、A1が1ならば...
-
エクセル関数で「数値が入力さ...
-
エクセルファイルを開くとメッ...
-
エクセル2007 番地の並び替え...
-
配列の逆行列が求められない(M...
おすすめ情報
ご回答ありがとうございます。
イメージ通りのことができました。
ここでまたひとつ質問なのですが、番号を、セルに表示されている通りにコピー貼り付けしたい場合どのようにすればよいのでしょうか。
(現在、番号列は000スタートになっていますが)
例えば番号をA000、A001、A002…となるようにした場合
見た目はA001 …と表示されていても実際にセルを選択すると
A001ではなく 1 になるので 見たままのものをコピー、貼り付けしたいです。
すみませんが、アドバイスよろしくお願いいたします。
新しいものが随時足されるようにするので、番号の並びは赤線側のように下から上に増えていきます。