プロが教えるわが家の防犯対策術!

例として次のような簡単な表があります(左上をセルA1とします)
    1日 2日 3日
A商品 100 200 300
B商品 150 250 210
C商品 100 300 500

ユーザーフォームのテキストボックスに***を入力したとき
日付  **
A商品 ***
B商品 ***
C商品 ***

日付に対応した商品欄に入力させるには
どう記述したらいいのでしょうか?

A 回答 (2件)

UserForm に TextBox1~TextBox4 と CommandButton があるとして



Private Sub CommandButton1_Click()
Dim r, i As Integer
 If TextBox1.Value = "" Then Exit Sub
 With Activesheet
  Set r = .Rows(1).Find(what:=TextBox1.Text, after:=.Range("IV1"), _
      LookIn:=xlValues, lookat:=xlWhole)
  If r Is Nothing Then
   MsgBox TextBox1.Text & "は無い。", vbOKOnly + vbInformation, "日付"
   Exit Sub
  End If
  For i = 2 To 4
    r.Offset(i - 1, 0).Value = Me.Controls("TextBox" & i).Value
  Next i
End With
End Sub
    • good
    • 0
この回答へのお礼

できました。ありがとうございました!
もうひとつお教えねがいないでしょうか?
下のような表があります(日付はセル結合しています)
日付をaとbに分けて入力します
    1日       2日      3日
      a   b      a b
A商品 100 200   300 100
B商品 150 250   210 250
C商品 100 300    500 300

下のようなユーザーフォームのとき
日付   **            **・・・・・
       a       b
A商品 *** ***
B商品 *** ***
C商品 *** ***

日付に対応した商品欄に入力させるには
どう記述したらいいのでしょうか?

お礼日時:2007/06/19 23:37

#1です。



> 下のような表があります(日付はセル結合しています)
> 日付をaとbに分けて入力します

この辺が良く理解出来ませんでした。結合セルに分けて入力?
Findで発見したセルが変数 r にセットされているので後は応用で行けると思いますが、、、

例えば
 TextBox1 を 検索用
 TextBox2~4 を 発見セルの下2行目から転記
 TextBox5~7 を 発見セルの右1列目下2行目から転記
となら、

Private Sub CommandButton1_Click()
Dim r, i As Integer
 If TextBox1.Value = "" Then Exit Sub
 With ActiveSheet
  Set r = .Rows(1).Find(what:=TextBox1.Text, after:=.Range("IV1"), _
      LookIn:=xlValues, lookat:=xlWhole)
  If r Is Nothing Then
   MsgBox TextBox1.Text & "は無い。", vbOKOnly + vbInformation, "日付"
   Exit Sub
  End If
  For i = 2 To 7
    Select Case i
    Case 2 To 4
     r.Cells(1, 1).Offset(i, 0).Value = Me.Controls("TextBox" & i).Value
    Case 5 To 7
     r.Cells(1, 2).Offset(i - 3, 0).Value = Me.Controls("TextBox" & i).Value
    End Select
  Next i
End With
End Sub


---
でも、、、
個人的な意見ですが、使う側としては入力位置の補完として該当日付に飛べば十分で、シート構成と同じUserFormなんて要らないような気がしますけど、、、
    • good
    • 0
この回答へのお礼

質問方が不十分で申し訳ありません
日付、1日はセル結合してあるのでB1です
日付、1日の下セルa=B2,b=C2という意味でした

ご回答ありがとうございました

お礼日時:2007/06/20 08:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!