Excel VBA質問箱 IV

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

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


37 / 13339 ツリー ←次へ | 前へ→

【80891】教えてください tomo 19/6/8(土) 14:25 質問[未読]
【80892】Re:教えてください Jaka 19/6/8(土) 14:51 発言[未読]
【80893】Re:教えてください マナ 19/6/8(土) 14:53 発言[未読]
【80894】Re:教えてください tomo 19/6/8(土) 16:45 質問[未読]
【80895】Re:教えてください マナ 19/6/8(土) 17:56 発言[未読]
【80896】Re:教えてください tomo 19/6/8(土) 19:51 お礼[未読]

【80891】教えてください
質問  tomo  - 19/6/8(土) 14:25 -

引用なし
パスワード
   点数で区分けをしたいのですが、メッセージボックスに何も入力しないでokをした時 ”型が一致しません” のエラーが出てしまいます。
以下のどこが間違っているのでしょうか?
どなたか教えていただけないでしょうか。
よろしくお願いいたします。
  
Dim inScore As Integer
 inScore = InputBox("サイズを入力してください")
    If 80 <= inScore And inScore <= 100 Then
         MsgBox "Bです"
       ElseIf 20 <= inScore And inScore < 80 Then
           MsgBox " Dです。"
        ElseIf 0 < inScore And inScore < 20 Then
             MsgBox " Fです。"
          ElseIf inScore = 0 Then
              MsgBox " 0以外を入力してください。"
           ElseIf 101 <= inScore Then
                MsgBox " 101以上になっています。"
             ElseIf inScore = " " Then
              
                 MsgBox " 空白になっています。"
        
    End If
  End Sub

【80892】Re:教えてください
発言  Jaka  - 19/6/8(土) 14:51 -

引用なし
パスワード
   こんな感じ??

Dim a As Variant
a = Application.InputBox("サイズを入力してください", Type:=1)
If VarType(a) = vbBoolean Then
  MsgBox "cancel"
Else
  MsgBox a
End If

【80893】Re:教えてください
発言  マナ  - 19/6/8(土) 14:53 -

引用なし
パスワード
   ▼tomo さん:

数値ならApplication.InputBoxを使うとよいです。
ht tp://officetanaka.net/excel/vba/tips/tips37.htm

【80894】Re:教えてください
質問  tomo  - 19/6/8(土) 16:45 -

引用なし
パスワード
   ▼マナ さん:
>▼tomo さん:
>
>数値ならApplication.InputBoxを使うとよいです。
>ht tp://officetanaka.net/excel/vba/tips/tips37.htm

早速InputBoxを使い作ってみましたが、コンパイルエラー(7行目)が出てしまいます。何がダメなのでしょうか?


Dim 文字列 As Integer
  文字列 = InputBox("サイズを入力してください")
    If 80 <= 文字列 And 文字列 <= 100 Then
         MsgBox "Bです"
       ElseIf 20 <= 文字列 And 文字列 < 80 Then
           MsgBox " Dです。"
        ElseIf 0 < 文字列And 文字列 < 20 Then
             MsgBox " Fです。"
          ElseIf 文字列 = 0 Then
              MsgBox " 0以外を入力してください。"
           ElseIf 101 <= 文字列 Then
                MsgBox " 101以上になっています。"

        ElseIf文字列 = False Then
         MsgBox "キャンセルします。"

End Sub

【80895】Re:教えてください
発言  マナ  - 19/6/8(土) 17:56 -

引用なし
パスワード
   ▼tomo さん:

意味不明です。
変数名は関係ないですよ?

数値しか入力する必要がないなら
Application.InputBoxを使うとよいです。
と申し上げたつもりでした。

誤解させていましましたか
使い方は、Jakaさんの回答通りなのですが…

Sub test()
  Dim n As Variant
  
  Do
    n = Application.InputBox("サイズを入力してください", Type:=1)
    If VarType(n) = vbBoolean Then Exit Sub
 
    If n >= 1 And n <= 100 Then Exit Do
    
    MsgBox "入力可能な範囲は1〜100です。"
  Loop
 
  Select Case CInt(n)
    Case 80 To 100
      MsgBox "Bです"
    Case 20 To 79
      MsgBox " Dです。"
    Case 1 To 19
      MsgBox " Fです。"
  End Select

End Sub

  

【80896】Re:教えてください
お礼  tomo  - 19/6/8(土) 19:51 -

引用なし
パスワード
   ▼マナ さん:
>▼tomo さん:
>
>意味不明です。
>変数名は関係ないですよ?
>
>数値しか入力する必要がないなら
>Application.InputBoxを使うとよいです。
>と申し上げたつもりでした。
>
>誤解させていましましたか
>使い方は、Jakaさんの回答通りなのですが…
>

非常にvbaに対する知識が乏しく、ご迷惑をおかけしています。
マナさん Jakaさんありがとうございました。

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