VisualBasicで電卓を作成する方法

Visual Basic 6を開き、新しいプロジェクトメニューから[標準EXE]を選択します。 画面に空白のフォームが表示されます。

画面右側のプロジェクトリストで[Project1]をクリックして、プロジェクトとフォームの名前を変更します。 [プロパティ]ボックスの[名前]行に新しい名前を入力します。これは、プロジェクトリストの下に表示されます。 ディフォルト。 「Enter」を押して、新しい名前を受け入れます。 フォームにも同じことを行い(推奨されるフォーム名は「CalculatorUI」です)、「Caption」プロパティにも同様の名前を入力してください。これにより、フォームのトップバーのテキストが変更されます。 プロジェクトをコンピューターの新しいフォルダーに保存します。

フォームにボタンとテキストボックスを追加します。 まず、電卓に入力された数値と計算結果が表示されるテキストボックスを追加します。 これを行うには、画面の左側にあるツールバーから[テキストボックス]ボタンを選択し、マウスでテキストボックスに必要なサイズと場所をドラッグします。 TextBoxを配置したら、フォームの別の場所にドラッグするか、TextBoxの境界に沿ってハンドル(小さな正方形)をドラッグすることで、サイズと場所を変更できます。 [プロパティ]ウィンドウで、TextBoxを選択した状態で、必ず次の行を変更してください。 "(Name)" = tbResult、 "Alignment" = 1-右揃え、 "Data Format" =([...]ボタンをクリックして選択)数値、 "Locked" = True、および 「テキスト」= 0。

ツールバーのCommandButtonアイコンを選択し、ボタンを追加するためにTextBoxを作成したのと同じ方法で最初のボタンを作成します。 参考までに、「MC」、「MR」、「MS」、「M +」ボタンを省略して、標準ビュー(「プログラム」>「アクセサリ」>「電卓」)のWindows電卓を電卓レイアウトの基礎として使用します。 各ボタンで、次のプロパティを変更します(例として「+」ボタンを使用):「(名前)」= btnPlus、「キャプション」= +。 残りの電卓ボタンについても同じようにして、作業内容を保存します。 これで、フォームはここに示す例のようになります。

コードを追加します。 ボタンとテキストボックスの名前がここにリストされているコードと同じでない場合は、次のものが必要になることに注意してください。 ボタンとテキストボックスに一致するように名前を変更するか、これに一致するようにボタンとテキストボックスを変更します コード。 まず、電卓の入力を処理するためのいくつかの変数を作成する必要があります。

Dim sLeft As String、sRight As String、sOperator As String Dim iLeft As Double、iRight As Double、iResult As Double Dim bLeft As Boolean

各計算は、演算子の左側の数値(sLeft、iLeft)、演算子(sOperator)、演算子の右側の数値(sRight、iRight)、および結果(iResult)の4つの部分で構成されます。 ユーザーが左または右の数字を入力しているかどうかを追跡するには、ブール変数bLeftを作成する必要があります。 bLeftがtrueの場合、計算の左側が入力されています。 bLeftがfalseの場合、右側が入力されています。

bLeft変数を初期化します。 これを行うには、Form_Loadサブルーチンを作成します。このサブルーチンは、ここにリストされているように入力するか、ボタンまたはテキストボックスで覆われていないフォームの任意の部分をダブルクリックして自動的に作成できます。 関数内では、最初に入力された数値が左側になるため、bLeftをTrueに設定する必要があります。

数字ボタンのいずれかのクリックを処理するサブルーチンを作成します。 ボタンごとに同じコードを使用するため、これをサブルーチンとして作成します。サブルーチンを使用すると、同じコードを10回繰り返す必要がなくなります。 Form_LoadサブルーチンのEndSub行の下に次のように入力します。

ご覧のとおり、この関数は文字列パラメーターsNumberを取ります。このパラメーターには、ユーザーがクリックした数値が含まれます。 bLeftがtrueの場合、この数値は入力されている数値sLeftを表す文字列に追加され、テキストボックスtbResultが更新されて新しい数値が表示されます。 bLeftがfalseの場合、代わりにsRightを使用して同じ操作が実行されます。

最後に、AddNumberサブルーチンを呼び出す番号ごとにClickイベント関数を作成します。 これは、各数字ボタンをダブルクリックすることで簡単に実行できます。これにより、サブルーチン構造が作成されます。 次に、AddNumberへの呼び出しを追加し、引用符で囲まれた番号をボタンに関連付けられた番号に置き換えます。 ゼロボタンの場合、コードは次のようになります。

同様に、1つのボタンの場合、コードは次のようになります。

演算子を処理します:プラス、マイナス、回、および除算。 これを最後のステップと同様に行い、演算子ボタンのClickイベントで呼び出されるサブルーチンを作成します。 サブルーチンは次のようになります。

bLeftがtrueの場合、つまりユーザーが計算の左側を入力したばかりの場合、このサブルーチンは sOperator変数は、入力した演算子と等しくなるように手順5で作成しました。これは、文字列としてAddOperatorに渡されます。 sNewOperator。 2番目のステップは、bLeftをFalseに設定することです。これは、演算子の入力は、ユーザーが方程式の左辺の入力を完了したことを意味するためです。 9 * 3 * 2 * 6など、複数の演算子をつなぎ合わせるエントリを処理するには、次のことを行う必要があります。 また、bLeftがfalseであるかどうかを確認します。これは、ユーザーが期待していた場所に演算子を入力したことを意味します。 等しい。 最初に、equalsボタンのClickイベント(次のステップで説明)を呼び出します。このイベントは、計算を実行し、tbResultをすでに入力された結果に設定します。 次に、ユーザーが次の数値を入力できるようにsRightをクリアし、bLeftをFalseに設定して、プログラムが次に計算の右側を入力していることを認識できるようにします。

最後に、手順7で数字ボタンのClickイベントを作成したのと同じ方法を使用して、各オペレーターボタンのClickイベントにAddOperator呼び出しを追加します。 プラスボタンのコードは次のようになります。

このプログラムで最も複雑なコードであるequalsボタンのClickイベントを作成します。 フォームの等号ボタンをダブルクリックして、他のボタンの場合と同じようにサブルーチン構造を作成します。 コードを入力すると、サブルーチンは次のようになります。

コードの最初の3行は、計算の両側が演算子とともに入力されているかどうかを確認します。 左側と演算子のみを入力すると、左側の値が右側にコピーされるため、模倣できます。 9 * =のようなエントリを処理するための標準的な計算機の動作。これは、9をそれ自体で乗算して81の結果を取得します。 残りのコードは、左、右、および演算子が入力された場合にのみ実行され、コピーすることから始まります iLeftおよびiRightDouble型変数への数値の文字列。これにより、実際の変数を実行できます。 計算。 Select Caseステートメントを使用すると、入力した演算子に応じて異なるコードを実行し、実際の計算を実行して、結果をiResultに配置できます。 最後に、結果でテキストボックスを更新し、結果をsLeftにコピーし、sRightをリセットして、bLeft = Trueに設定します。 これらの最後の行により、計算結果を取得し、それを使用して別の計算を実行できます。

最後の3つの操作ボタン(sqrt、%、および1 / x)を処理します。 平方根ボタンのClickイベントの場合、コードは次のようになります。

コードの最初の11行は、方程式のどちらの側にも値が入力されていない場合、次のことを確認します。 空の文字列をiLeftまたはiRightにコピーしようとする代わりに、ゼロに置き換えます。これにより、 エラー。 真ん中の線は、計算の現在の部分(左または右)で平方根関数を実行します。 最後に、最初に行ったチェックを逆にして、ゼロが空の文字列としてsLeftとsRightにコピーされるようにします。

パーセントボタンの場合、コードは似ていますが、1つの例外があります。パーセント操作は、左側と右側の両方が入力されている場合にのみ実行できます。

最後に、1 / x、つまり分数のClickイベントは、上記のコードと非常によく似ています。

CボタンとCEボタンを処理するコードを追加します。 Cは電卓へのすべての入力をクリアしますが、CEは現在入力されている数値のみをクリアします。

電卓プログラムを実行し、必要な計算を行います。 この計算機は簡単に拡張して、より多くの操作、より複雑な計算を処理したり、少し余分な作業を行う関数電卓にすることもできます。

ヒント

エラーが発生した場合は、VBがエラーを含んでいると呼び出した行に焦点を当てて、コードを1行ずつ確認し、上記のコードと比較してください。 この記事に含まれているコードは、エラーがないことが完全にテストされているため、忠実にコピーすると、関数型プログラムになります。 以前のバージョンのVisualBasicを使用している場合、バージョン間で言語が変更されているという問題が発生する可能性があります。 たとえば、以前のバージョンのVBはMathを使用していました。 Mathの代わりにSqrt()。 Sqr()は、平方根演算を実行します。 特定のバージョンのリファレンスをチェックして、変更が必要かどうかを確認してください。