Excel VBA質問箱 IV

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

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


13586 / 13646 ツリー ←次へ | 前へ→

【4717】入力フォームに二つ目を入れたい はじめましてはじめ 03/4/3(木) 16:08 発言
【4720】Re:入力フォームに二つ目を入れたい パピー 03/4/3(木) 17:17 回答
【4721】追伸 パピー 03/4/3(木) 17:24 発言
【4723】訂正 パピー 03/4/3(木) 17:37 回答
【4731】Re:入力フォームに二つ目を入れたい kein 03/4/3(木) 23:04 回答
【4753】Re:入力フォームに二つ目を入れたい はじめましてはじめ 03/4/4(金) 12:13 お礼

【4717】入力フォームに二つ目を入れたい
発言  はじめましてはじめ  - 03/4/3(木) 16:08 -

引用なし
パスワード
   VBA初心者です。
またどうしても分からないことがあったので教えてください!
入力フォームをつくり、それに氏名、住所、電話を入力して
ボタンをおすと、そのデータがSheet2にうつって、フォーム上はまた
入力した文字が消えて、また氏名、住所、電話を入力して
ボタンをおせばそのデータがSheet2の次の行にうつされて・・・
というものを作りたいのですが、ボタンをおすと入力した文字が
消える、というのと、Sheet2に順序良く並ぶという方法を
どうか教えてください。図書室にも本が貸し出し中でありません。
よろしくお願いいたします。

【4720】Re:入力フォームに二つ目を入れたい
回答  パピー  - 03/4/3(木) 17:17 -

引用なし
パスワード
   ▼はじめましてはじめ さん:こんにちは。
試してみて下さい。
的を外していたらごめんなさい。

ユーザフォームにテキストボックスを3個とコマンドボタンを1個造って下さい。

標準モジュールに
Sub test()
  UserForm1.Show
End Sub

ユーザフォームのコマンドボタンに次のコードを
Private Sub CommandButton1_Click()
  With Sheets("Sheet2")
    L = Range("A65536").End(xlUp).Row
    Cells(L + 1, 1) = TextBox1.Text
    Cells(L + 1, 2) = TextBox2.Text
    Cells(L + 1, 3) = TextBox3.Text
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox1.SetFocus
  End With
End Sub

マクロの実行でtestを実行して下さい。

【4721】追伸
発言  パピー  - 03/4/3(木) 17:24 -

引用なし
パスワード
   パピーです。
Sheet2には、2行目からデータが書かれますので、1行目には項目名でも
書いて下さい。

  A     B      C
1 氏名    住所     電話番号
2山田 太郎  ○○○○   1234-5678
3
4

【4723】訂正
回答  パピー  - 03/4/3(木) 17:37 -

引用なし
パスワード
   ごめんなさい、以下の様に訂正します。

Private Sub CommandButton1_Click()
  With Sheets("Sheet2")
    L = .Range("A65536").End(xlUp).Row
    .Cells(L + 1, 1) = TextBox1.Text
    .Cells(L + 1, 2) = TextBox2.Text
    .Cells(L + 1, 3) = TextBox3.Text
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox1.SetFocus
  End With
End Sub

【4731】Re:入力フォームに二つ目を入れたい
回答  kein  - 03/4/3(木) 23:04 -

引用なし
パスワード
   InputBox にカンマ区切りで入力すると、各データが A2,B2,C2から下へ入力される、
というものですと・・

Sub Test()
  Dim GetData As String
  Dim MyData As Variant

  On Error Resume Next
  Do
   GetData = InputBox("氏名、住所、電話番号をカンマ区切りで入力して下さい")
   If GetData = "" Then Exit Sub
   MyData = Split(GetData, ",")
   Range("A65536").End(xlUp).Offset(1).Resize(, 3).Value = MyData
  Loop
End Sub

Split関数は、Excel2000以降で使えます。
   

【4753】Re:入力フォームに二つ目を入れたい
お礼  はじめましてはじめ  - 03/4/4(金) 12:13 -

引用なし
パスワード
   パピー様、kein様、どうもありがとうございました!
おかげさまで、思っていたように動くようになりました。
本当に感謝します。
パピー様に教えていただいた方法を取り入れてみました。
空欄にしても動くし、うれしいです。
Excelも97だったのをXPに変えてみました。
感謝!

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