- ベストアンサー
Excel VBA コマンドボタンからセルへ入力
- Excel VBAを使用してコマンドボタンからセルへの入力を行いたいと思います。具体的には、フォームを使用して学年、クラス、物品名、個数を入力し、確定ボタンを押すと、それぞれの値が指定されたセルに自動的に入力されるようにしたいです。また、返却期限については、入力された日付から1週間後の日付が自動的に入力されるようになっていると便利です。
- ExcelのVBAを使って、コマンドボタンからセルへの入力を簡単にする方法を知りたいです。具体的には、学年、クラス、物品名、個数などをフォームで入力し、確定ボタンを押すと、それぞれの値が指定されたセルに入力されるようになっていると便利です。また、入力された日付から1週間後の日付を自動的に入力できるようにしたいです。
- Excel VBAを使って、コマンドボタンからセルへの入力を効率化したいと思います。具体的には、フォームを使用して学年、クラス、物品名、個数を入力し、確定ボタンを押すと、それぞれの値が指定されたセルに自動的に入力されるようにしたいです。さらに、入力された日付から1週間後の日付を自動的に入力できるようにする方法も知りたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
次のようなコードでいかがでしょうか。 フォームの名前、各コンポーネントの名前は ソースコードから判断(読み取って)設定してください。 不明なら聞いてください。 また、セットする値が日付なのか、日時なのか不明なので Int(Now) としました、 必要に応じて Now あるいは、date に変更してください。 Option Explicit Private Sub UserForm_Initialize() Me.ClassLBox.Clear Me.KosuuLBox.Clear Me.ClassLBox.AddItem "キリン組" Me.ClassLBox.AddItem "パンダ組" Me.ClassLBox.AddItem "バンビ組" Me.KosuuLBox.AddItem "1" Me.KosuuLBox.AddItem "2" Me.KosuuLBox.AddItem "3" Me.KosuuLBox.AddItem "4" Me.ClassLBox.ListIndex = -1 Me.KosuuLBox.ListIndex = -1 End Sub Private Sub GoPut_Click() Dim MyRange As Range With ThisWorkbook.Sheets(1) Set MyRange = .Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) MyRange.Offset(0, 0).Value = Int(Now) MyRange.Offset(0, 1).Value = Me.GakunenEBox.Text MyRange.Offset(0, 2).Value = Me.ClassLBox.Text MyRange.Offset(0, 3).Value = Me.BuppinEBox.Text MyRange.Offset(0, 4).Value = Me.KosuuLBox.ListIndex MyRange.Offset(0, 5).Value = Int(Now) + 7 Me.GakunenEBox.Text = "" Me.ClassLBox.ListIndex = -1 Me.BuppinEBox.Text = "" Me.KosuuLBox.ListIndex = -1 End With End Sub Private Sub Cancel_Click() Me.Hide End Sub
その他の回答 (3)
- kkkkkm
- ベストアンサー率66% (1725/2595)
No1の訂正です 全てのCellsの前にドット「.」を入れてください。
お礼
回答ありがとうございます!
- kkkkkm
- ベストアンサー率66% (1725/2595)
確定を押した後に学年のところにカーソルが行くようにNo1のコードの最後に以下を追加してください。TextBox1は学年のテキストボックスの名前で。 Me.TextBox1.SetFocus
お礼
回答ありがとうございます!
- kkkkkm
- ベストアンサー率66% (1725/2595)
確定ボタンをクリックしたときのコードに Sheet1は実際のシート名に TextBox1からTextBox4までは実際のフォームのテキストボックス及びコンボボックスの名前に変更して記載してください。 Dim LastRow As Long With Sheets("Sheet1") LastRow = Cells(Rows.Count, "B").End(xlUp).Row + 1 Cells(LastRow, "B").Value = Date Cells(LastRow, "C").Value = Me.TextBox1.Value Me.TextBox1.Value = "" Cells(LastRow, "D").Value = Me.TextBox2.Value Me.TextBox2.Value = "" Cells(LastRow, "E").Value = Me.TextBox3.Value Me.TextBox3.Value = "" Cells(LastRow, "F").Value = Me.TextBox4.Value Me.TextBox4.Value = "" Cells(LastRow, "G").Value = Date + 7 End With
お礼
回答ありがとうございます! 訂正も確認しつつ、試してみたのですが残念ながら上手く行きませんでした。 もう少し試行錯誤してみようと思います
お礼
回答ありがとうございます! コードを入れたところ、無事上手く動いてくれました! 学校の教師に提案してみたところあんが採用されました(笑) 本当に助かりました!m(_ _)m