ここから本文です

解決済みのQ&A

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

nxwct392さん

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

番号 機種 金額
A00001

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

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

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

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

補足
question12121212さんへ

上記状態でよいです。

違反報告

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

yama_ski_11さん

フォームの作成ができるものとして、コードのみ回答します。添付図のフォームにはテキストボックス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/25 20:53:12

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

  • 笑う画像までつけて下さってありがとうございました。
    おかげさまでできるようになりました。
  • コメント日時:2009/8/26 18:44:44

グレード

このQ&Aはまだナイス!されていません。
役に立ったと思った回答に、ナイス!してみよう!

あなたにおすすめの解決済みの質問

マクロについて教えて下さい。例えばシート「赤」に、コマンドボタン1~20があります。そして、ユー...
エクセルマクロでユーザーフォームを利用した条件分岐のコードを書く場所についてお聞きします。(profe...
◆こんにちはエクセルVBAを使ったやり方を教えてください。シート1と2のA列に重複する番号があったら...

あなたにおすすめの知恵ノート

エクセルマクロをユーザーフォームのボタンで実行する
エクセルVBA 空白行削除&挿入
エクセルVBA カラーチャートについて

知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

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