過去ログ

                                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さん、以前ワークシートが開くと、ユーザーフォームも開く記述を教えていただきました。バッチリでした。本当にありがとうございました。
 ───────────────────────────────────────  ■題名 : Re:住所録の作成について  ■名前 : ポンタ  ■日付 : 02/12/21(土) 23:51  -------------------------------------------------------------------------
   こんな感じでしょうか?

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
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 473