初めは、以下のように書いてちゃんと計算出来ていたものを、
Private Sub TextHensaigaku_Change()
If Me.TextKariire.Value = "" Or Me.TextKikan.Value = "" Or Me.TextKinri.Value = "" Then
Me.TextHensaigaku.Value = ""
End If
Dim rate As Double, per As Integer, nper As Integer, pv As Double
rate = Me.TextKinri.Value / 12 / 100
nper = Me.TextKikan.Value * 12
pv = -1 * Me.TextKariire.Value
Me.TextHensaigaku = Application.WorksheetFunction.RoundDown(Pmt(rate, nper, pv), 0)
Me.TextHensaigaku = Format(TextHensaigaku, "#,###")
Me.TextKariire = Format(TextKariire, "#,###")
End Sub
下記のように書き換えたら、急に「rate = Me.TextKinri.Value / 12 / 100」部分で実行時エラーが出るようになりました。
その後上記の記載に戻したのですがエラーがなくなりません。
Private Sub TextHensaigaku_Change()
If Me.TextKariire.Value = "" Or Me.TextKikan.Value = "" Or Me.TextKinri.Value = "" Then
Me.TextHensaigaku.Value = ""
End If
If Me.TextBank.Value = "◯◯銀行" Then
Dim rate As Double, per As Integer, nper As Integer, pv As Double
rate = Me.TextKinri.Value / 12 / 100
nper = Me.TextKikan.Value * 12 -1
pv = -1 * Me.TextKariire.Value
Me.TextHensaigaku = Application.WorksheetFunction.RoundDown(Pmt(rate, nper, pv), 0)
Me.TextHensaigaku = Format(TextHensaigaku, "#,###")
Me.TextKariire = Format(TextKariire, "#,###")
Else
rate = Me.TextKinri.Value / 12 / 100
nper = Me.TextKikan.Value * 12
pv = -1 * Me.TextKariire.Value
Me.TextHensaigaku = Application.WorksheetFunction.RoundDown(Pmt(rate, nper, pv), 0)
Me.TextHensaigaku = Format(TextHensaigaku, "#,###")
Me.TextKariire = Format(TextKariire, "#,###")
End If
End Sub
どこがエラーの原因かわかりません。
よろしくお願いいたします。
No.2
- 回答日時:
ありがとうございます。
デバッグモードは使用できますでしょうか?
使用できましたら、それぞれの値を確認するのが良いと思います。
もしデバッグが使用できないのであれば、msgboxを使用し値を表示させて見てください。
とりあえず、TextKariire等の4つの値を表示し、計算して見てください。
Msgboxは、1個目のend ifの後に入れて頂ければと思います。
No.1ベストアンサー
- 回答日時:
お疲れ様です。
実際に使用されているものが無いのでよくわかりませんが、書き直した後、変数宣言dimの位置はおかしいと思います。
Ifの後ではなく、前に持って来てください。
書き直した後の位置ですと、else処理この時宣言が効いておりません。
宣言しなくてもエクセルは自動で判断してくれますが、自分が求める結果をだすには、宣言した方が良いです。
また、元に戻してもエラーになってしまうとの事ですが、dimもきちんと戻しましたでしょうか?
また、追記情報があれば細かくご回答できると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- Visual Basic(VBA) VBA。複数のChangeイベントをまとめる方法 2 2022/03/31 12:03
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
現在使用中の壁紙のファイルの...
-
WIN11 アップデートがイン...
-
パソコンで、「ヴ」を入力したいの...
-
WIN10 起動直後の画面が緑色になる
-
半角数字で電話番号を入れてる...
-
起動ディスクダウンロード
-
PCがフリーズしてしまったので...
-
IMEオプションが開かない
-
PC(NVIDIAコントロールパネル...
-
ウインドーズ10のシャットダウン
-
エクセルで文字の色を変えよう...
-
増殖するexplorer.exeにメモリ...
-
この謎解き誰かお願いいたします。
-
FRONTIER のノートパソコンの電...
-
「このPCを初期にもどす」実...
-
PC起動時に現れる警告?について
-
教えてほしいです! ガレリアPC...
-
IME辞書の単語登録について
-
MS-DOS6.2でCD-ROMドライブを認...
-
Windows meのisoダウンロード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラーの意味
-
2件の中断されたアクション 予...
-
トークンが不正ですって出るん...
-
いつもこんなメールが来ますが...
-
DATEDIF関数が機能しない理由は?
-
ワトソン博士
-
データエラー、巡回冗長検査(CR...
-
ユーザーによってキューされた...
-
貼り付けできない(OpenClipboa...
-
ライトプロテクト
-
Administratorsとしてログオン...
-
エラーダイアログボックスについて
-
エラー内容
-
My Videosへのアクセスが拒否さ...
-
エラーについて
-
最近ネットでストリーミング動...
-
Windows Update エラーです
-
Windows Media Pia...
-
Twitter Facebook アクセス出来ず
-
【エクセル】実行時エラー'13'...
おすすめ情報


こんにちは。
恥ずかしながら初心者なので色んなコードを調べてはコピペして編集して使っていたので
Dimの位置の事が理解してませんでした。
以下のようにDimを上に持ってきましたが同じエラーが出ています。
これで何かわかりますでしょうか
よろしくお願い致します。
Private Sub TextHensaigaku_Change()
Dim rate As Double, per As Integer, nper As Integer, pv As Double
If Me.TextKariire.Value = "" Or Me.TextKikan.Value = "" Or Me.TextKinri.Value = "" Then
Me.TextHensaigaku.Value = ""
End If
If Me.TextBank.Value = "◯◯銀行" Then...(以下略)
ご丁寧にありがとうございます。
デバックモードというのは何でしょうか?
エラーが出てそのエラーの部分の背景が黄色くなっている状態のことでよろしいですか?
また、MsgBoxには下記みたいな表記が必要ですよね?
If Me.TextBukkenNumber = "" Then
MsgBox "物件No.が選択されていません。", vbCritical
MsgBox以下にどのように書けばよいでしょうか?
ちなみに黄色くなってるrate = Me.TextKinri.Value / 12 / 100のMe.TextKinri.Value の部分にマウスオーバーすると吹き出しで、Me.TextKinri.Value=""という表示が出て、rate=の部分にはrate=0と出ています。
お手数おかけしますが、よろしくお願いいたします。
こんにちは。
TextKikanは元々数値が入っておらずその都度30とか35を入力します。
なのでnperは360とか420という値になります。
TextKariireもTextKinriも同様に手入力で数値を入力します。
なので冒頭にIf Me.TextKariire.Value = "" Or Me.TextKikan.Value = "" Or Me.TextKinri.Value = "" Then
Me.TextHensaigaku.Value = ""と書いています。
よろしくお願いいたします。