Excel VBA質問箱 IV

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

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


36573 / 76732 ←次へ | 前へ→

【45338】Re:セル間へのデータ入力
発言  かみちゃん  - 06/12/20(水) 7:07 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>ご覧の通り、膨大なIF文が出来上がってしまいました。。。
>実際に作成しようとしている物は、もっと行が多いので、これじゃ使い物になりません。

Select Case ステートメントで分岐して、For〜Next開始列と終了列を指定しては
いかがでしょうか?
以下のような感じでできると思います。

Private Sub CommandButton1_Click()

 Dim atTime As Date
 Dim intCol As Integer
 Dim intStartCol As Integer
 Dim intEndCol As Integer
 

 '時刻確認
 If IsDate(UserForm1.Controls("textbox1").Value) = True Then
  UserForm1.Controls("textbox1").Value = Strings.Format(UserForm1.Controls("TextBox1"), "hh:mm")
 Else
  MsgBox "時刻を入力して下さい"
  UserForm1.Controls("TextBox1").SetFocus
  Exit Sub
 End If
 
 atime = TimeValue(UserForm1.Controls("textbox1"))
 
 Select Case Hour(atTime)
  Case 9
   intStartCol = 1
   intEndCol = 4
  Case 10 To 14
   intStartCol = 4
   intEndCol = 7
  Case 15 To 19
   intStartCol = 7
   intEndCol = 9
  Case 20 To 22
   intStartCol = 9
   intEndCol = 10
  Case Else
   intStartCol = 0
   intEndCol = 0
   MsgBox "範囲外の時刻です" & atTime
 End Select
 If intStartCol <> 0 And intEndCol <> 0 Then
  For intCol = 9 To 10
   If Cells(intCol, 1).Value = "" Then
'    Cells(intCol, 1).Value = UserForm1.Controls("TextBox1").Value
    Exit For
   End If
  Next intCol
 End If

End Sub
0 hits

【45337】セル間へのデータ入力 alco 06/12/20(水) 4:47 質問
【45338】Re:セル間へのデータ入力 かみちゃん 06/12/20(水) 7:07 発言
【45364】Re:セル間へのデータ入力 alco 06/12/20(水) 20:17 質問
【45370】Re:セル間へのデータ入力 かみちゃん 06/12/20(水) 22:06 発言
【45371】Re:セル間へのデータ入力 alco 06/12/20(水) 23:55 質問
【45372】Re:セル間へのデータ入力 かみちゃん 06/12/21(木) 0:02 発言
【45373】Re:セル間へのデータ入力 alco 06/12/21(木) 1:18 お礼

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