ここから本文です

エクセルVBAを勉強しているのですがなにぶん初心者で自動採番をしたいのですが行き...

質問者

nxwct392さん

2009/8/2421:44:24

エクセルVBAを勉強しているのですがなにぶん初心者で自動採番をしたいのですが行き詰っていますどなたか知恵を授けてください。

番号 機種 金額
A00001

【VBAのユーザーフォーム】

番号
──────
──────
機種
──────
──────

□新規 □登録
ユーザーフォームの新規ボタンをクリックするとエクセル表に
直接自動採番されるのではなくユーザーフォームにいったん
表示されてからそのほかの情報を入力した後にエクセル表に
保存がしたいのです。

どうかよろしくお願いいたします。

補足question12121212さんへ

上記状態でよいです。

閲覧数:
2,361
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

yama_ski_11さん

2009/8/2520:53:12

フォームの作成ができるものとして、コードのみ回答します。添付図のフォームにはテキストボックス1~3(上から順番に)とコマンドボタン1~2(左から)が配置されています。同様なものを作成し、下記のコードを標準モジュールとコマンドボタンクリックに貼り付けると動作します。
①Alt+F8でstartを実行します。フォームが表示されます。
②新規のボタンをクリックするとそのシートのA列にある次のコードがフォームに表示されます。
③機種の名称と金額(全角・半角どちらでも可)を入力し、登録ボタンをクリックするとシートにコピー(入力)されます。
④新規ボタンをクリックすると次の入力状態になるので、続けて繰り返し作業できます。
⑤終了はフォームの右上にある×をクリック

標準モジュール

Sub start()
UserForm1.Show
End Sub

フォーム内のコード

Private Sub CommandButton1_Click()
Range("A" & Rows.Count).End(xlUp).Select
a = ActiveCell.Value
b = Mid(a, InStr(1, a, "0"))
c = Val(b)
d = Len(b)
c = c + 1
e = Right("000000" & c, d)
f = Left(a, InStr(1, a, "0") - 1)
f = f & e
UserForm1.TextBox1 = f
UserForm1.TextBox2 = ""
UserForm1.TextBox3 = ""
End Sub

Private Sub CommandButton2_Click()
r = Range("A" & Rows.Count).End(xlUp).Row + 1
Cells(r, 1) = UserForm1.TextBox1
Cells(r, 2) = UserForm1.TextBox2
Cells(r, 3) = Val(StrConv(UserForm1.TextBox3, vbNarrow))
End Sub

投稿画像

質問した人からのコメント

2009/8/26 18:44:44

笑う 画像までつけて下さってありがとうございました。
おかげさまでできるようになりました。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する