• ベストアンサー

エクセル VBA 

エクセル VBA  Sheet上にコマンドボタンをクリックさせたら 電卓表示させるにはどのように記述をしたら良いですか? (1)勿論、VBAで電卓作成したいのですが…何か良いサイトはありますか?それか  作り方を教えて欲しいです。 (2)ツール⇒すべてのプログラム⇒アクセサリ⇒電卓  で表示できますよね!それをコマンドボタンクリックで  表示させるには、どのように記述したら良いですか?   すいません教えてください!

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

セルを使用した電卓のサンプル 本当はuserform使用したものが良いのだとは思いますが 説明が長くなりそうなのでカンベンしてね 準備 セルに下記のように半角で入力してください   A B C D E 1 7 8 9 / 2 4 5 6 * 3 1 2 3 - 4 0 . = + C セルE1とE3の書式を文字列にしておいて下さい シートモジュールへ下記のマクロをコピペしてください '簡単な電卓 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'A1~E4以外は処理をしない If Intersect(Target, Range("a1:e4")) Is Nothing Then Exit Sub If Not Intersect(Target, Range("a1:b4,c1:c3")) Is Nothing Then '数字及び小数点が選択された時の処理 If Range("e2").Value = "" Then '演算子が選択されていない時の処理 Range("e1").Value = Range("e1").Value & Target.Value Else '演算子が選択されている時の処理 Range("e3").Value = Range("e3").Value & Target.Value End If ElseIf Target.Address = "$C$4" Then 'イコールが選択された時の処理 Range("e1").Value = Evaluate(Range("e1").Value & Range("e2").Value & Range("e3").Value) Range("e2:e3").ClearContents ElseIf Target.Address = "$E$4" Then 'クリアが選択された時の処理 Range("e1:e3").ClearContents Else '演算子が選択された時の処理 If Range("e2").Value <> "" Then Range("e1").Value = Evaluate(Range("e1").Value & Range("e2").Value & Range("e3").Value) Range("e2:e3").ClearContents End If Range("e2").Value = Target.Value End If Range("a5").Select End Sub

pop2003
質問者

お礼

詳しい説明ありがとう ございます! 本当に感激です!

その他の回答 (2)

  • pentium100
  • ベストアンサー率45% (689/1517)
回答No.2

電卓を起動する「ランチャ」を作りたいんでしょうか? それとも、自力でロジックをくんで、ExcelVBAを利用した電卓を完成させるのが目的でしょうか? ともかく、電卓を起動するマクロ Sub DentakuTest() Dim varTest varTest = Shell("CALC.EXE") End Sub これをボタンに登録すれば電卓起動します。

pop2003
質問者

お礼

ありがとうございました。 上手くいきました。 本当はVBAで電卓を作りたいのですが 私の知識ではまだまだです!!(^^!

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

電卓を起動するならコマンドボタンに以下のマクロを割り付けてください Sub Sample()   Shell "C:\Windows\system32\calc.exe", 1 End Sub

pop2003
質問者

お礼

ありがとうございます!! 出来ました!

関連するQ&A