Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


63885 / 76738 ←次へ | 前へ→

【17443】Re:ユーザーフォームの件
回答  こもれび  - 04/8/29(日) 23:43 -

引用なし
パスワード
   こもれびです

>textboxは72個ありますので、全部入力するまでEnterキーを押してもシート1へ追加しないようにしたいがやはりコマンドボタンを配していけばいいと思う。
>TextBox72個入力して「入力完了ボタン」を押してシート1へ追加して終了なります。

うわぁ、72個!

それでは、次のコードはいかがでしょうか

○ 標準モジュール

  public TextData(71) as String ' テキストボックスデータ用1次元配列

○ フォームのモジュール

Private Sub TextBox1_AfterUpdate()
  TextData(0) = UserForm2.TextBox1.Text ' 配列にデータを入力
End Sub

ちょっと手間ですが、72個のテキストボックス全部にAfterUpdateイベント
プロシージャを書きます。
その際に、配列の番号は順番どおりに記述してください。

Private Sub TextBox1_AfterUpdate()
  TextData(0) = UserForm2.TextBox1.Text ' 配列にデータを入力
End Sub

Private Sub TextBox2_AfterUpdate()
  TextData(1) = UserForm2.TextBox1.Text ' 配列にデータを入力
End Sub

Private Sub TextBox3_AfterUpdate()
  TextData(2) = UserForm2.TextBox1.Text ' 配列にデータを入力
End Sub

全部入力し終えましたら

Private Sub CommandButton1_Click()
  dim i as Integer

  For i = 0 to 71
   Cells(i+1, 1) = TextData(i)
  next i

End Sub

これですと、コマンドボタンの数は1個で済みなおかつテキストボックス全部
に入力されるまでシートにデータが入らなくなります。
上のコードはあくまで例で、実際に使用される際はセルの位置を変更してください。
0 hits

【17412】ユーザーフォームの件 さる 04/8/28(土) 23:17 質問
【17415】Re:ユーザーフォームの件 こもれび 04/8/29(日) 0:35 回答
【17442】Re:ユーザーフォームの件 さる 04/8/29(日) 23:04 質問
【17443】Re:ユーザーフォームの件 こもれび 04/8/29(日) 23:43 回答
【17449】Re:ユーザーフォームの件 さる 04/8/30(月) 1:17 質問
【17450】Re:ユーザーフォームの件 こもれび 04/8/30(月) 1:46 回答
【17451】追伸 こもれび 04/8/30(月) 1:54 回答
【17465】Re:ユーザーフォームの件 さる 04/8/30(月) 15:09 質問
【17469】Re:ユーザーフォームの件 こもれび 04/8/30(月) 17:38 発言
【17470】Re:ユーザーフォームの件 さる 04/8/30(月) 19:49 質問
【17471】Re:ユーザーフォームの件 さる 04/8/30(月) 19:59 発言
【17472】Re:ユーザーフォームの件 さる 04/8/31(火) 1:28 質問
【17473】Re:ユーザーフォームの件 こもれび 04/8/31(火) 7:06 回答
【17535】Re:ユーザーフォームの件 さる 04/9/1(水) 20:30 質問
【17541】Re:ユーザーフォームの件 こもれび 04/9/2(木) 0:47 回答
【17580】Re:ユーザーフォームの件 さる 04/9/2(木) 17:06 お礼

63885 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free