visual basic で簡易電卓を作成しています。
Formにそれぞれのボタンが押された時のコードをifやselectで書いています。
プロジェクトのモジュールを追加から新しくモジュールを追加してそこにpublic function〜などを活用して追加したモジュールで実行した結果をform受け取るようにしたいです。


・ 書き出しとしてどのようにすればいいか(Public function…)
・基礎的なこと

教えていただきたいです。漠然とした質問で申し訳ありません。お願いします!

A 回答 (1件)

誰もレスをつけていないのは、Visual Basic といっても、VB.Net なのか、VB6 なのかよく分からないからだと思います。



ただ、VBの実践練習として、ずいぶん昔の話になりますが、誰しもが一度は電卓をつくるものだと聞かされていました。そういう私は、話に聞くだけで電卓を作ったことはありません。

新しいモジュール.public function(引数)

だとしたら、

Form の個々のプロシージャの中のコードで、
◯button1_Click(...)
コード
コード
returnvalue=(新しいモジュール.)public function(引数)
コード
End Sub

のようになるはずです。

しかし、ここにClass が入ってくるのではないかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2017/04/23 20:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QPublicステートメントと標準モジュールについて

標準モジュールを挿入して、変数の前にPublicを宣言してあげると、
どのモジュールからも参照が可能になるのは、本を読んでよく分かったのですが、
「Function」などで関数プロシージャの定義を標準モジュールでする時に、
「Public」があると、なしでは、どういった効果がでるのでしょうか?
本には、ほとんどPublicが宣言されていました。

関数プロシージャを定義する場合は、Publicを付けなくても、
他のモジュール(例えばフォームなど)から参照可能ですよね?

今一、標準モジュールと関数定義、Public変数の関連がわかっていません。

良かったら、アドバイスお願いします。m(__)m

Aベストアンサー

>関数プロシージャを定義する場合は、Publicを付けなくても、
>他のモジュール(例えばフォームなど)から参照可能ですよね?

それは関数プロシージャの場合、Publicが規定値だからです。
だから関数名にPublicやPrivateを付けないとPublicとみなされます。
逆に変数はPrivateが規定値になります。

しかしながら規定値に頼ってPublicやPrivateを省略すべきではありません。
なぜなら今のバージョンではこの規定値でも、将来のバージョンでは変わるかもしれません。
そうなるとプログラムが動かなくなるかもしれません。

また、プログラミング技術の面からも関数や変数の有効範囲(スコープ)は小さいほうが良いので、PublicやPrivateで有効範囲を指定すべきです。

この当りのことは、ヘルプでスコープを調べると良いです。

QForm1のボタンを押すとForm2が表示されて、Form1をクリックしたらBeep音

初歩的な質問ですみません。
タイトルそのまんま(しかも長い --;)なんですが。
よく見かけるもので、Form1でボタンを押すとForm1より小さいForm2が表示されて、そこでOKボタンを押さないとForm1に戻れなくて、その時にForm1の方をクリックするとBeep音が出る、っていうのがありますよね。あれはどうなっているんですか?Form2の表示まではできるんですけど、その先が分かりません。教えて下さい。お願いします。

Aベストアンサー

Form2.Show vbModal

でOKです。

Q【VB.NET】別Formのボタンが押されるまで待機する方法??

【VB.NET】別Formのボタンが押されるまで待機する方法??

 今晩は,いつもいつも勉強させていただいております.
質問させていたきます.どうぞよろしくお願いいたします.
 開発環境XP+VB2008になります。

 今までは、コード中のMsgBoxで続行か中断かを選択するために
 Private Sub Button1_Click
       :
       :
       :
   If MsgBox("続行しますか?", MsgBoxStyle.OkCancel, "確認") = vbOK Then
   Else
     Exit Sub
   End If
       :
       :
       :
 End Sub
   
としておりましたが、このMsgBox上に複数のコントロールが必要になって
しまいましたので、同じ形のFormを作成いたしました。
(Form_MsgBox上に、ButtonOK、ButtonCancel、Label1に加え
                     TextBox1を配置)

 Form_MsgBox.LabelMsg.Text = "確認"
 Form_MsgBox.Show()

が、このメッセージ表示中だけPrivate Sub Button1_Clickを
止めておく方法がわかりません。。。
ButtonOKかButtonCancelが押されるまで待機したいのですが。。
 検索いたしておりますと、何か他のアプリを起動した場合に
それが終わるまで待機する、といった方法は結構見つかるのですが。。。

 何か良さそうな方法など思いつかれるようでございましたら、
是非ともアドバイスいただきたくお願い申し上げます。
 もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

【VB.NET】別Formのボタンが押されるまで待機する方法??

 今晩は,いつもいつも勉強させていただいております.
質問させていたきます.どうぞよろしくお願いいたします.
 開発環境XP+VB2008になります。

 今までは、コード中のMsgBoxで続行か中断かを選択するために
 Private Sub Button1_Click
       :
       :
       :
   If MsgBox("続行しますか?", MsgBoxStyle.OkCancel, "確認") = vbOK Then
   Else
     Exit Sub
   End If
   ...続きを読む

Aベストアンサー

Form_MsgBoxを ShowDialogで表示してやるってのはダメなんですか?

親FormのButton1を押した際に 親Form内の他のコントロールを操作したいのですとこの手法は使えませんが ・・・

Qform2 から form1に戻ったとき、form1のTextboxの内容を消したくないのですが

.NETのBasicでform1からform2に移行するため
Dim F2 As New Form2()
Me.Hide()
F2.Show()

この後、form1にもどるため
Dim F1 As New Form1()
F1.Show()
Me.Hide()
上記のように書くと、form1のTextboxの内容が消えてしまいますよね。

これを消さずにまたform1のTextboxの編集が続けられるようにしたいのですが、どうすればいいでしょうか

ただ単にform1を見えなくする方法が違うのでしょうか

初歩的な質問ですいません。

Aベストアンサー

Form1側を
Dim F2 As New Form2()
Dim ret As Integer
Me.Hide()
ret = Form.ShowDialog()
If ret = DialogResult.OK Then
Me.Show()
End If
としておいて
Form2側のクローズイベントで
Me.DialogResult = DialogResult.OK
という具合にする方法もありますよ。

QVB2005 Express プロジェクトへの追加、削除について

ソリューションエクスプローラから、一時的に.vbファイルを除外したく、ヘルプで検索した結果、
[プロジェクト]メニューの[プロジェクトから削除]をすればよいとのこと。
しかし、プロジェクトメニューにはそんなもなはく、ソリューションエクスプローラから.vbファイルを右クリックしてもそんな項目がありません。ついでに[プロジェクトに含める]もありません。何か表示させる設定があるのでしょうか?それとも、インストールミスでしょうか?どなたかアドバイス宜しくお願いいたします。

Aベストアンサー

プロジェクトからはずす方法ですが
Form2などを選んで ファイル > 名前をつけて保存 で別名で保存します
こうすれば元のForm2.vbはそのまま残ります、プロジェクトからは除外された状態で

追加するには、プロジェクト > 既存の項目の追加 で Form2.vbを追加すればいいように思います

ご質問の趣旨が違うなら補足などしてください


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報