Microsoft 製品に組み込まれている Visual Basic の実装。
いつもお答えいただき、有難うございます。
まだどこを直してプラスしたらよいのかわかりませんが、とりあえずもう少し
ネットから使えそうなコードを引っ張ってきてやってみようと思います。
有難うございました。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Excelで受発注管理をしたいと思い作成中です。
ユーザーフォームから入力できるようにしたいと思いネットを活用しながら
作成してるのですが・・・・・
↓↓現在の状態
Private Sub CommandButton1_Click()
'入力必須の項目が未入力なら終了しない
If TextBox3 = "" Then
MsgBox "住所を入力してください", vbInformation, "確認"
End If
'各テキストボックスの値をシートに転記
With Worksheets("得意先マスタ")
Dim lastrow As Single '最終行の次の行番号を取得する
lastrow = 1
Do
lastrow = lastrow + 1
Loop While Cells(lastrow, 5) <> ""
' LastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'データ設定
.Cells(lastrow, 2).Value = TextBox1 '得意先コード
.Cells(lastrow, 3).Value = TextBox2 '〒
.Cells(lastrow, 4).Value = TextBox3 '住所
.Cells(lastrow, 5).Value = TextBox4 '得意先名
.Cells(lastrow, 6).Value = TextBox5 '電話
.Cells(lastrow, 7).Value = TextBox6 'FAX
.Cells(lastrow, 8).Value = TextBox7 '備考
End With
TextBox1 = "" '入力場所クリア
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
'得意先コード欄に自動連番を入力
Range("B2").Select
番号 = ActiveCell
TextBox1.Value = "T" & Application.WorksheetFunction.Rept("0", 6 - Len(番号)) & 番号
番号 = 番号 + 1
End Sub
ユーザーフォームで入力し登録ボタンをクリックするとワークシートに転記できるようにしました。
その後からやはり得意先コードだけは自動採番にしたいと思って追加をしてる所です。
現状ですとT000000となってしまって+1になりません。
1行登録して2行目からはコード欄が空白になって登録されるような状態です。
どのように変更したらT000001、T000002・・・のように自動採番になりますでしょうか。
よろしくお願いします。
"※ モデレーター注 : 質問の内容からタイトルを一部変更させていただきました。
変更前スレッドタイトル : Excel マクロ 自動採番"
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
いつもお答えいただき、有難うございます。
まだどこを直してプラスしたらよいのかわかりませんが、とりあえずもう少し
ネットから使えそうなコードを引っ張ってきてやってみようと思います。
有難うございました。
パッと見でコードを熟読してませんが。
UserForm Initializeで番号をセットしておられるわけですが、これはユーザーフォームがUnloadされない内は最初の一回だけよばれている訳です。
ですから初期状態から変わらずに同じ番号がでてくることになります。
TextBox1.Value = "T" & Application.WorksheetFunction.Rept("0", 6 - Len(番号)) & 番号
また、かならず、CommandButton2でアンロードして、Initializeに行くことになっていても、
> Range("B2").Select
> 番号 = ActiveCell
では常にB2の番号がセットされるだけです。
ここで、LastRowの存在する行のB列をセットするとかなんとかする必要がありそうです。
NTHARU さん、こんにちは。
マイクロソフト コミュニティをご利用いただき、ありがとうございます。
Excel のマクロを使用して自動採番にしたいということなのですね。
マクロのコードの質問については専門の VBA フォーラムがあるので、こちらのフォーラムにも投稿をして情報を集めてみてはいかがでしょうか。
経験豊富な方から、有益な情報やアドバイスが集まりやすくなるかもしれません。
・ Visual Basic for Application (VBA)
投稿される場合は同じく、作成されたコード全文を書いて投稿されると回答が得られやすくなると思います。
せっかく質問していただいたのにお手数なのですが、上記のフォーラムもご利用になってみてくださいね。