Excel VBA質問箱 IV

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

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


40156 / 76738 ←次へ | 前へ→

【41683】Re:金利計算について
回答  かみちゃん E-MAIL  - 06/8/19(土) 19:00 -

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

横から失礼します。

>このコードでは、Application.Inputboxを
>キャンセルした場合→
>金利が0になり全て無金利扱いになってしまいます。
>金利の数字を入れずにOKを押した場合→
>エラーが発生します。
>キャンセルないしは数字を入れない場合は、Exitさせ、更に
>「金利を入力してください」と表示させる方法を教えてください。
>
>また金利の入力した場合、「その金利で間違い無いですか」を付け加える
>方法も別途明示するコードを教えてください。
>
>また、シート1以外に金利計算が出来るようにさせたいのです。
>そのためにFor i= 2 To Sheets.Count にしていますがもっと
>確実な方法(コード)を表現する方法がありましたら、教えてください。

以下のような感じでいかがでしょうか?
InputBoxメソッドのヘルプを参照していただきたいのですが、戻り値は、引数
Typeを明示的に指定しない限り、文字列となります。
そのため、戻り値用変数を
Dim Kinri As Single
のように宣言していると、キャンセルしたとき、数値以外が入力されたときなど
に「型が一致しません」というエラーになるかと思います。

Sub Kinri_Change()
 '台帳の金利変更
 Dim ws As Worksheet
 Dim strKinri As String


 Do While True
  strKinri = Application.InputBox("金利を変更します" & Chr(13) & "新金利を入力してください" & Chr(13) & _
   "例:「0.02」入力は…2%を示します ", "金利変更")
  If Val(strKinri) = 0 Then
   MsgBox "金利を入力してください"
  Else
   If MsgBox("その金利で間違い無いですか " & strKinri, vbYesNo) = vbYes Then
    Exit Do
   End If
  End If
 Loop
 For Each ws In Worksheets
  ws.Range("H3").Value = Val(strKinri)
 Next
End Sub
0 hits

【41666】金利計算について ToShiYo 06/8/18(金) 20:54 質問
【41667】Re:金利計算について ぱっせんじゃー 06/8/18(金) 21:02 発言
【41682】Re:金利計算について ToShiYo 06/8/19(土) 18:38 質問
【41683】Re:金利計算について かみちゃん 06/8/19(土) 19:00 回答
【41743】Re:金利計算について ToShiYo 06/8/21(月) 22:14 お礼

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