Excel VBA質問箱 IV

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

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


39891 / 76732 ←次へ | 前へ→

【41945】Re:繰り返し短縮コード変換
回答  Kein  - 06/8/26(土) 16:13 -

引用なし
パスワード
   かえってややこしくなったかも知れませんが、編集するとこんな感じです。
日付は初めにチェックし、入力済みならメッセージを出してマクロを中止、
未入力なら決められた位置に本日の日付を強制入力し、その行に対して
他のデータも入力できるようにしてあります。
InputBox は、何も入力しないで OK したときか、キャンセルを押した後の
MsgBox で「いいえ」を選択したときに、その項目を飛ばして次のデータの
入力に移ります。MsgBox で「はい」を押すと全て中止します。ま、そのへん
の改造は簡単なので、希望に添わないなら一度ご自分でやってみて下さい。

Sub InputBox_Data2()
  Dim CkR As Variant, Ary As Variant, GetV As Variant
  Dim i As Integer, Ans As Integer
  Dim Def As String
  Const St1 As String = "を入力してください"
  Const Ttl As String = "日報"

  CkR = Application.Match(CLng(Date), Range("B:B"), 0)
  If IsError(CkR) Then
    CkR = Range("B65536").End(xlUp).Row + 1
  Else
    MsgBox "本日のデータは入力済みです", 48: Exit Sub
  End If
  Ary = Array("今日の天候", "来場者数", "売上げ金額", "担当者名")
  Cells(CkR, 2).Value = Format(Date, "yyyy/m/d")
  For i = 4 To 7
    If i = 4 Then
     Def = "晴れ"
    Else
     Def = ""
    End If
    GetV = Application _
    .InputBox(Ary(i - 4) & St1, Ttl, Def, Type:=3)
    If VarType(GetV) = 11 Then
     Ans = MsgBox("入力を中止しますか", 36)
     If Ans = 6 Then Exit Sub
    End If
    If Ans <> 7 Then Cells(CkR, i).Value = GetV
    Ans = 0
  Next i
End Sub

1 hits

【41939】繰り返し短縮コード変換 Po 06/8/26(土) 14:18 質問
【41941】Re:繰り返し短縮コード変換 inoue 06/8/26(土) 15:56 発言
【41944】Re:繰り返し短縮コード変換 Po 06/8/26(土) 16:12 質問
【41945】Re:繰り返し短縮コード変換 Kein 06/8/26(土) 16:13 回答

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