解決済みのQ&A
エクセルVBAを勉強しているのですがなにぶん初心者で自動採番をしたいのですが行き...
nxwct392さん
エクセルVBAを勉強しているのですがなにぶん初心者で自動採番をしたいのですが行き詰っていますどなたか知恵を授けてください。
番号 機種 金額
A00001
【VBAのユーザーフォーム】
番号
──────
──────
機種
──────
──────
□新規 □登録
ユーザーフォームの新規ボタンをクリックするとエクセル表に
直接自動採番されるのではなくユーザーフォームにいったん
表示されてからそのほかの情報を入力した後にエクセル表に
保存がしたいのです。
どうかよろしくお願いいたします。
- 補足
- question12121212さんへ
上記状態でよいです。
-
- 質問日時:
- 2009/8/24 21:44:24
-
- 解決日時:
- 2009/8/26 18:44:44
-
- 回答数:
- 1
-
- お礼:
- 知恵コイン
- 250枚
-
- 閲覧数:
- 1,682
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
ベストアンサーに選ばれた回答
フォームの作成ができるものとして、コードのみ回答します。添付図のフォームにはテキストボックス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
このQ&Aはまだナイス!されていません。
役に立ったと思った回答に、ナイス!してみよう!
あなたにおすすめの解決済みの質問
- マクロについて教えて下さい。例えばシート「赤」に、コマンドボタン1~20があります。そして、ユー...
- エクセルマクロでユーザーフォームを利用した条件分岐のコードを書く場所についてお聞きします。(profe...
- ◆こんにちはエクセルVBAを使ったやり方を教えてください。シート1と2のA列に重複する番号があったら...
あなたにおすすめの知恵ノート
- エクセルマクロをユーザーフォームのボタンで実行する
- エクセルVBA 空白行削除&挿入
- エクセルVBA カラーチャートについて

質問した人からのコメント
おかげさまでできるようになりました。