Excel VBA質問箱 IV

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

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


9980 / 13644 ツリー ←次へ | 前へ→

【24433】シート指定 38L 05/4/22(金) 9:54 質問[未読]
【24435】Re:シート指定 ウッシ 05/4/22(金) 10:08 回答[未読]
【24443】Re:シート指定 38L 05/4/22(金) 13:27 お礼[未読]

【24433】シート指定
質問  38L  - 05/4/22(金) 9:54 -

引用なし
パスワード
   集計(日計)に使用するシート指定の件で質問です
シート名は1から31まであります
Sub 日付のシート指定()
Dim strHiduke As String
Dim strDate As String
 strDate = Date
INP_COL:
  strHiduke = Application.InputBox("入力したい日付を入力してください。", "日付", Day(strDate), 2, -80)
  If strHiduke = "False" Then   
  End
  End If
  strHiduke = StrConv(strHiduke, vbNarrow)
   strHiduke = Str(strHiduke)      strHiduke = Trim(strHiduke)
  If "1" > strHiduke Or strHiduke > "31" Then
  MsgBox ("日付を入力してください")     
    GoTo INP_COL            
  End If
  Worksheets(strHiduke).Activate        
End Sub
この文章で起動すると、1から3と10以上(31以下)は反応して対応したシートが開かれるのですが、4から9までのシートが開いてくれず、「MsgBox ("日付を入力してください") 」が帰ってきてしまいます。
何がいけないのでしょうか?ご教示お願い致します。

【24435】Re:シート指定
回答  ウッシ  - 05/4/22(金) 10:08 -

引用なし
パスワード
   こんにちは

  If CInt(strHiduke) < 1 Or CInt(strHiduke) > 31 Then
    MsgBox ("日付を入力してください")
    GoTo INP_COL
  End If

とすればいいと思いますけど、

「End」は

  If strHiduke = "False" Then
    Exit Sub
  End If

とした方がいいと思いますし、他にもちょっと無駄な処理が有るような気もします。

【24443】Re:シート指定
お礼  38L  - 05/4/22(金) 13:27 -

引用なし
パスワード
   >他にもちょっと無駄な処理が有るような気もします。


いやはや御恥ずかしい限りです。もっと精進いたします。
問題は無事解決できました。ありがとうございます。
また,わからないことがあると思いますので、そのときは宜しくお願い致します。

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