前提・実現したいこと
シート1でフォームを開きます。
フォームではID、名前、年齢を入力して登録します。
IDは表の一番下のIDを取得して+1してフォームに出るようにしています。
下記の表を例とすると、フォームのIDでは3が出るようになってます。
ID | 名前 | 年齢 |
---|---|---|
1 | 山田太郎 | 22 |
2 | 佐藤花子 | 19 |
ここでID2の佐藤花子を削除します。
次に登録するIDを3からにしたいのですが、今の仕様だと表の一番下のID+1を取得するため2になってしまいます。
そのため、フォーム登録の書き込みをシート1とプラスでシート2におこないます。(セル値は同じ)
シート1の方ではメンバーの削除をおこなえるようにし、シート2では今まで登録した全メンバーが見れるようにします。
フォームのIDをシート2から取得することで、上記のような場合でもIDを3からにできると考えました。
しかし、シート2でIDを取得しているつもりなのですが、反映されません。
該当のソースコード
VBA
1 '登録ボタンを押した時の処理' 2Private Sub OkButton1_Click() 3 '入力されている一番最後のセルの番号を取得' 4 CellCount = Cells(8, 1).End(xlDown).Row + 1 5 6 7 'IDTextBoxの値を"ID"の欄に入力' 8 Cells(CellCount, 1).Value = Me.IDTextBox.Value 9 Worksheets("シート2").Cells(CellCount, 1).Value = Me.IDTextBox.Value 10 11End Sub 12 13 '入力画面が表示されたときの処理(自動処理)' 14Private Sub UserForm_Initialize() 15 16 If Worksheets("シート2").Cells(9, 1).Value = "1" Then 17 IDTextBox.Text = Worksheets("シート2").Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1).Value + 1 18 Else 19 IDTextBox.Text = 1 20 End If 21 22 23 24End Sub
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。