- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで電卓を作成する)
VBAで電卓を作成する
このQ&Aのポイント
- VBAを使用してWinXPとExcel2003で10桁の電卓を作成しようとしています。しかし、エラーが多く発生しているため、修正を行いたいと考えています。
- 作成する電卓には、最初の時点ではテキストボックスに0が表示されるようにします。計算結果が10桁に収まらない場合はエラーボックスを表示し、直前の数値を入力状態に戻します。また、計算結果を出すためには数字、演算、数字の順に3回以上ボタンを押す必要があります。
- 演算キーを使用した場合は、=ボタンを押すまではテキストボックスに計算結果ではなく、直前に入力した数字が表示されます。計算結果が出た後に連続して=ボタンを押しても結果は出ず、再度演算キーを押した場合は新たな計算結果が表示されます。また、計算過程では入力したデータは文字列として認識されますが、=ボタンを押すと数値として認識されるように変換します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
計算する場合は精度を合わせたほうがよいと思います。 が、Double型も2進計算となるため小数同士だと誤差が生じるみたいです。 計算はVariant型がよいみたいです。 下記等参考にしてください。
その他の回答 (1)
- o_chi_chi
- ベストアンサー率45% (131/287)
回答No.1
どんなエラーがいつ出るのかわかりませんのでいくつかアドバイス (1)miku1をStringにしている意図がわかりません (2)どうしてもStringで処理したいならデータ型変換関数(CDbl)を利用しましょう (3)frgをStringにしているので判定は"1"という用にダブルクォートで囲みましょう(エラーにはなりませんが) (4)Clickイベントで必ずエラーが表示されます Private Sub XXX_Click() On Error GoTo myError ~ Exit Sub '←これがない myError: MsgBox "エラーが発生しました。" ~ End Sub
質問者
お礼
>o_chi_chiさん、ありがとうございます。 >miku1をStringにしている意図がわかりません 最初はStringにせず、Longにも対応できるようにと思い、あえて書かずにおいていたのですが、省略はまずいのかと思いひとまず書いてみただけです。すいません。この場合はAsの後ろに何を入れるといいのでしょうか? >Exit Sub '←これがない 初歩的なミスでした。申し訳ありません。
お礼
>o_chi_chiさん、ありがとうございます。 ぜひ参考にさせていただきます。