- ベストアンサー
Excelの表に自動でナンバリングしたいです。
Excelで表を作り、その表に順番にナンバーを入力しています。 Winを閉じた後 次回またその表を開いた時に、ナンバーが次の数になっていると、 前回どこまでの番号だったか確認し、次のナンバーを記入する手間がはぶけると思うのですが、 そういう方法があったら教えて下さい。 色々関数など調べてみましたが、見つからなかったので教えて下さい。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
思われていることと違っていましたらすみませんが、VBAでそのBookのオープン時にナンバーを加算していくのはどうでしょうか。 下記のコードは例えばセルB1にNo.0001で作成して保存後、次に開いたらNo.0002になっていくようにしています。 参考までに新規Bookで試してみてください。 Alt+F11キーでMicrosoft Visual Basicの画面が開きますのでプロジェクトエクスプローラ(プロジェクト-VBAProject)の中のThisWorkBookを右クリックしてコードの表示をクリック。 下記のコードをコピーして貼り付けてください。 Private Sub Workbook_Open() Dim cnt As Long Dim シート名, セル, 文字列 As String シート名 = ActiveSheet.Name セル = "B2" '←ナンバーを入れるセル(Range("C2")なら"C2")…(1) cnt = Len(Sheets(シート名).Range(セル)) If cnt = 0 Then Sheets(シート名).Range(セル) = "No." & Format(InputBox("発行No.の初期値をセットしてください。"), "0000") Else 文字列 = Right(Sheets(シート名).Range(セル), cnt - 3) cnt = Val(文字列) cnt = cnt + 1 Sheets(シート名).Range(セル) = "No." & Format(cnt, "0000") '←桁数をセット(5桁なら"00000")…(2) End If End Sub 一旦、Bookを保存し、開いてみてください。 セルB1が空白の時は初期値セットのInputBoxを出すようにしていますので、数字の1を入力してみてください。セルB1にNo.0001と表示されます。 また保存して、開いてみてください。セルB1がNo.0002になっていると思います。
その他の回答 (2)
- suekun
- ベストアンサー率25% (369/1454)
要は見積書の発行No.の様に、毎回新しく順番に上の番号を取得 したいって事でしょうか? ひな形形式をとっているなら、それは難しいですね。 VBAでそのファイルを開いた数を数えてNo.にするとか・・・ 表を作る、次回表を開くと言ったあたりや どのような趣旨のナンバーなのか補足が欲しいです。 >前回どこまでの番号だったか確認し、 この文書から、行詰めされた連番ではないと想像できますが それ以降がわかりません。
補足
>要は見積書の発行No.の様に、毎回新しく順番に上の番号を取得 したいって事でしょうか? そうです! その通りです。
- hallo-2007
- ベストアンサー率41% (888/2115)
後から並び替えしなければ A列が連番 B列より右に入力の場合 =IF(B2="","",ROW()) たっぷりとしたフィルしておく方法有り 別の案ですが、オートフィルご存知ですか。 B列にデータ入力した後、 途中まで連番になっている最後のセルの右下にマウスを持ってきます。 ポインタが+になった所で、ダブルクリックすると、入力した最後の行まで 連番が自動で入るはずです。
補足
すみません。 書き方が悪いようでした。 例えば 表が完成し、それをNo1としてプリントアウトしたとします。 次回、同じシートを開いた時には、 そのNo1と書かれたセルには、No2の数字が入っているようにしたいのです。そして、No2の数字の入った表をプリントアウトし、 No3.No4と表を綴っていけるようにしたいのです。 Noという文字は別のセルにして構いません。 数字さえ、次回再度開いた時に次の数になってれば良いです。 並べ替えもありません。 再度宜しくお願い致します。
お礼
できました!できました! お礼が遅くなりすみませんでした。(マクロの認証と格闘してました) kuma3fさん、ありがとうございました☆助かりました。