Page 473 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼住所録の作成について 弘二 02/12/21(土) 22:30 ┗Re:住所録の作成について ポンタ 02/12/21(土) 23:51 ─────────────────────────────────────── ■題名 : 住所録の作成について ■名前 : 弘二 ■日付 : 02/12/21(土) 22:30 -------------------------------------------------------------------------
VBAのユーザーフォームを使用して住所録を作成したいのですが、テキストボックス6個とコンボボッックス3個を配置し、コマンドボタンを使用しセルへデータを転送したいのですが、どのように記述すればよいのでしょうか?【1一人分が1行とし、次のデータは下方向へ次々と入力させたい】又、入力済みのデータを修正するのに、コンボボックスの数値を行に割り当ててコマンドボタンをクリックすると、データを呼出す記述も教えて頂けないでしょうか。それとこの場をお借りして【パスワードを忘れてお礼ができませんでした】ひでさん、つんさん、NAKAMURAさん、以前ワークシートが開くと、ユーザーフォームも開く記述を教えていただきました。バッチリでした。本当にありがとうございました。 |
こんな感じでしょうか? Arrayの中身は適当に並べ替えてください。 CommandButton1はUserForm→セルへ CommandButton2はセル→UserFromへデータを転記します。 Private Sub CommandButton1_Click() Dim Ctrl() As Variant, MyCtrl As Variant Dim MyRange As Range Ctrl = Array(TextBox1, TextBox2, TextBox3, ComboBox1, ComboBox2, ComboBox3, TextBox4, TextBox5, TextBox6) Set MyRange = ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0) For Each MyCtrl In Ctrl MyRange.Value = MyCtrl.Value Set MyRange = MyRange.Offset(0, 1) Next End Sub Private Sub CommandButton2_Click() On Error GoTo ErrHandler Dim Ctrl() As Variant, MyCtrl As Variant Dim MyRange As Range Ctrl = Array(TextBox1, TextBox2, TextBox3, ComboBox1, ComboBox2, ComboBox3, TextBox4, TextBox5, TextBox6) Set MyRange = ActiveSheet.Cells(ComboBox4.Value, 1) For Each MyCtrl In Ctrl MyCtrl.Value = MyRange.Value Set MyRange = MyRange.Offset(0, 1) Next Exit Sub ErrHandler: MsgBox ("行番号が不正です") End Sub |