プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になります。
OSはWin11、エクセルはoffice365 です。

体温1 は毎日午前測定します

体温2 はコロナになった時のみ午後にも追加測定をします

例 図のB5に追加
   午後の体温2を追加登録、
  
   textbox1に体温を入れず
   textbox2のみに体温を入れる
 
 この場合、下記の参考コードでは
 B4の体温値(37.1)は消え B5の体温値は登録されます

下記のコードをどのようにすればこの問題は解消されますか
ご指導をよろしくお願いいたします

参考コード
rivate Sub CommandButton1_Click()
'体温1
Cells(Label2.Caption + 1, ComboBox1.ListIndex + 2).Value = TextBox1.Text
'体温2
Cells(Label2.Caption + 2, ComboBox1.ListIndex + 2).Value = TextBox2.Text
'咳
If CheckBox1.Value = True Then
Cells(Label2.Caption + 3, ComboBox1.ListIndex + 2).Value = "有"
Else
Cells(Label2.Caption + 3, ComboBox1.ListIndex + 2).Value = ""
End If

「VBA 同日で2回目(午後)の体温を登録」の質問画像

質問者からの補足コメント

  • おはよう
    参照図を参考にしてください
    体温1 は平常時は毎日午前に登録します
    ただし 体温1(textbox1) の後にコロナの疑いがあるとき
        若しくは陽性になったら 体温2(textbox2)
      を追加します
    textboox1 & textbox2 同時入力は参考のコードで可能です
    ご指導を仰ぎたいのは
    体温1(4の行/textbox1)が入力されているときは其の侭にして
     体温2(5の行/textbox2)のみ入力できる

    「VBA 同日で2回目(午後)の体温を登録」の補足画像1
    No.1の回答に寄せられた補足コメントです。 補足日時:2022/08/29 06:56
  • どう思う?

    コロナの管理用です
    通常の体温測定は textbox1 エクセル表に入力しています
     時間は9時頃です ただしエクセルの入力時間は定かではない

    突然コロナの疑いまたは陽性の時用にtextbox2を設けています
     私の考えかも知りません

    No.2の回答に寄せられた補足コメントです。 補足日時:2022/08/29 09:13
  • 下記のように対象となる体温1のコードをテストしました

    体温1
    If TextBox1.Text <> "" Then
    Cells(Label2.Caption + 1, ComboBox1.ListIndex + 2).Value = TextBox1.Text
    Else
    Cells(Label2.Caption + 1, ComboBox1.ListIndex + 2).Value = ""
    End If

    ※参照図のようにB4が空白になります
       下記コードをどうすればいいでしょか
    Else
    Cells(Label2.Caption + 1, ComboBox1.ListIndex + 2).Value = ""

    「VBA 同日で2回目(午後)の体温を登録」の補足画像3
      補足日時:2022/08/29 09:17

A 回答 (3件)

Value = ""のロジックが何故あるのかわりませんが、単純に



体温1
If TextBox1.Text <> "" Then
Cells(Label2.Caption + 1, ComboBox1.ListIndex + 2).Value = TextBox1.Text
体温2
If TextBox2.Text <> "" Then
Cells(Label2.Caption + 2, ComboBox1.ListIndex + 2).Value = TextBox2.Text
End If
で駄目なんでしょうか。

入力記録を消すのは、クリアのチェックボックスを作るか、
直消しします。
    • good
    • 1
この回答へのお礼

ありがとうございました

早速のご指導をいただきお陰様で上手くできました

お礼日時:2022/08/29 10:10

ユーザーフォームからの転記なのでしょうけど、そもそもテキストボックスが2つ必要なのでしょうか?


例えば午前中に1,2共に入力をする事がありますか?

https://www.tipsfound.com/vba/05hour

テキストボックスを1つにし入力してシートへ転記する時刻によって、振り分けると言う方法もありかと感じます。
転記時刻は
https://www.tipsfound.com/vba/05now

なので求める場合は 変数 = Hour(Now()) になるかな?
スマホなので未検証でごめんなさい。
この回答への補足あり
    • good
    • 0

こんばんは


ご質問の内容を理解していなかったらごめんなさい
>textbox1に体温を入れず
であるならば、
書き込み条件に 
if TextBox1.Text<>"" then (値があれば)
if TextBox2.Text<>"" then
とすれば良いかと・・思います
この回答への補足あり
    • good
    • 0

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