Excel VBA質問箱 IV

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

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


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

【41950】エラーの処理対応について 実験太郎 06/8/26(土) 20:27 質問[未読]
【41951】Re:エラーの処理対応について ぱっせんじゃー 06/8/26(土) 20:43 発言[未読]
【41956】Re:エラーの処理対応について 実験太郎 06/8/26(土) 23:40 質問[未読]
【41957】Re:エラーの処理対応について かみちゃん 06/8/26(土) 23:55 発言[未読]
【41953】Re:エラーの処理対応について Kein 06/8/26(土) 23:00 回答[未読]

【41950】エラーの処理対応について
質問  実験太郎  - 06/8/26(土) 20:27 -

引用なし
パスワード
   実験データのデータ数字差のチェックをしています。
実験データをA列(1回目)とB列(2回目)にデータを明記して
A列とB列のデータ差をInputBoxから入力してデータチェックをしています。
結果をC列に明示しています。
InputBoxに数字が入力していない状態で「OK」を押すと『エラー』が
でます、また「キャンセル」を押すと『0の差が・・・』と出ます。
これを「入力しなおしてください」などのメッセージにしたいの
ですが、どのようなコードを付け加えれば良いのでしょうか。

Sub HikakuSa()

Dim R As Range
Dim MyR As Range
Dim Cdata As Integer

Range("C6", Range("C65536").End(xlUp)).ClearContents

Set MyR = Range("A6", Range("A65536").End(xlUp))
Cdata = Application.InputBox("" & Chr(13) & "A列の数字とB列の数字の比較をする" _
    & Chr(13) & "数字を入力してください", "A列数字>B列数字の比較")

For Each R In MyR
  If R.Value - R.Offset(, 1).Value >= Cdata Then
    R.Offset(, 2).Value = Cdata & "以上の差があります"
  End If
Next

End Sub

【41951】Re:エラーの処理対応について
発言  ぱっせんじゃー  - 06/8/26(土) 20:43 -

引用なし
パスワード
   解決に至ってないですが、過去ログです。

金利計算について
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=41666;id=excel

【41953】Re:エラーの処理対応について
回答  Kein  - 06/8/26(土) 23:00 -

引用なし
パスワード
   こんな感じで、できると思います。

Sub HikakuSa()
  Dim Cdata As Integer
  Dim RetSt As String
  Const Pmt As String = _
  "A列の数字とB列の数字の比較をする" & vbLf & _
  "数字を入力してください"
  Const Ttl As String = "A列数字>B列数字の比較"
    
  With Application
   .DisplayAlerts = False
   Cdata = .InputBox(Pmt, Ttl, Type:=1)
   .DisplayAlerts = True
  End With
  If Cdata = 0 Then Exit Sub
  RetSt = """" & Cdata & "以上の差があります" & """"
  With Range("A6", Range("A65536").End(xlUp)).Offset(, 2)
   .ClearContents
   .Formula = _
   "=IF($A6-$B6>=" & Cdata & "," & RetSt & ","""")"
   .Value = .Value
  End With
End Sub

【41956】Re:エラーの処理対応について
質問  実験太郎  - 06/8/26(土) 23:40 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:
早速の回答ありがとうございます。

>解決に至ってないですが、過去ログです。
>
>金利計算について
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=41666;id=excel

まねて見ました。
ひとつお聞きしたいのですが・・・
Dim R As Range
Dim MyR As Range
Dim Cdata As String

Range("C6", Range("C65536").End(xlUp)).ClearContents
 Do While True
  Cdata = Application.InputBox("" & Chr(13) & "A列の数字とB列の数字の比較をする" _
    & Chr(13) & "数字を入力してください", "A列数字>B列数字の比較")

'InputboxのキャンセルでInputboxを消すようにしたいのですが
'(OkもCancelも同じ動きをするのですが)・・・対応を教えてください。

  If Val(Cdata) = 0 Then
   MsgBox "数字を入力してください"
  Else
    If MsgBox("数字 " & Val(Cdata) & " で間違いないですか", vbYesNo) = vbYes Then
      Exit Do
    End If
  End If
 Loop
  Set MyR = Range("A6", Range("A65536").End(xlUp))
    For Each R In MyR
     If R.Value - R.Offset(, 1).Value >= Val(Cdata) Then
      R.Offset(, 2).Value = Val(Cdata) & "以上の差があります"
     End If
    Next

【41957】Re:エラーの処理対応について
発言  かみちゃん  - 06/8/26(土) 23:55 -

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

横から失礼します。

>'InputboxのキャンセルでInputboxを消すようにしたいのですが
>'(OkもCancelも同じ動きをするのですが)・・・対応を教えてください。

以下のようなものが参考になりますでしょうか?

Sub Test()
 Dim Cdata As Variant '←ポイント
 
 Cdata = Application.InputBox("" & Chr(13) & "A列の数字とB列の数字の比較をする" _
    & Chr(13) & "数字を入力してください", "A列数字>B列数字の比較")
 If VarType(Cdata) = vbBoolean Then
  MsgBox "キャンセルがおされました"
 Else
  MsgBox "入力値は " & Cdata & " です"
 End If
End Sub

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