• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで電卓を作成する)

VBAで電卓を作成する

このQ&Aのポイント
  • VBAを使用してWinXPとExcel2003で10桁の電卓を作成しようとしています。しかし、エラーが多く発生しているため、修正を行いたいと考えています。
  • 作成する電卓には、最初の時点ではテキストボックスに0が表示されるようにします。計算結果が10桁に収まらない場合はエラーボックスを表示し、直前の数値を入力状態に戻します。また、計算結果を出すためには数字、演算、数字の順に3回以上ボタンを押す必要があります。
  • 演算キーを使用した場合は、=ボタンを押すまではテキストボックスに計算結果ではなく、直前に入力した数字が表示されます。計算結果が出た後に連続して=ボタンを押しても結果は出ず、再度演算キーを押した場合は新たな計算結果が表示されます。また、計算過程では入力したデータは文字列として認識されますが、=ボタンを押すと数値として認識されるように変換します。

質問者が選んだベストアンサー

  • ベストアンサー
  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.2

計算する場合は精度を合わせたほうがよいと思います。 が、Double型も2進計算となるため小数同士だと誤差が生じるみたいです。 計算はVariant型がよいみたいです。 下記等参考にしてください。

参考URL:
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_p03.htm
fujisato29
質問者

お礼

>o_chi_chiさん、ありがとうございます。 ぜひ参考にさせていただきます。

その他の回答 (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

fujisato29
質問者

お礼

>o_chi_chiさん、ありがとうございます。 >miku1をStringにしている意図がわかりません 最初はStringにせず、Longにも対応できるようにと思い、あえて書かずにおいていたのですが、省略はまずいのかと思いひとまず書いてみただけです。すいません。この場合はAsの後ろに何を入れるといいのでしょうか? >Exit Sub '←これがない 初歩的なミスでした。申し訳ありません。

関連するQ&A