Form内関数のパラメタについて VB6.0

このQ&Aのポイント
  • VB6.0のForm内関数のパラメータについて、初期表示時の処理(Form_Load)でPrivate Subで関数処理を行っている場合、関数に渡される値の解釈について教えてください。
  • Form_Load内で渡される値が関数のModeパラメータに0を渡していると解釈できますか?また、Indexパラメータは-1が設定されていると解釈できますか?
  • VB6.0のForm_Load内で、関数に渡される値の解釈について教えてください。Modeパラメータに0を渡していると解釈できますか?Indexパラメータは-1が設定されていると解釈できますか?
回答を見る
  • ベストアンサー

Form内関数のパラメタについて VB6.0

現在、他人の作成したVBプログラムを解析しているのですが、 どなたかご存知でしたらご教授願います。 画面の初期表示時の処理(Form_Load)内でPrivate Subで関数処理を 行っています。 仮にaaaという名称だった場合、 Private Sub From_Load() … aaa (0) End Sub とした時に、実際のaaa側は Public Sub aaa(Optional Mode As Integer=-1, Optional Index As Integer=-1) … End Sub とあった場合、Form_Load内でaaaに渡している(0)の値は、 "aaa側の第1パラメタであるModeに0を渡している" と言う解釈で合っていますか? また、この時のIndexパラメタには-1が設定されていると言う解釈で 合ってますでしょうか? VBはあまり良くわからずに悪戦苦闘しています。 すみませんがよろしくお願いします。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

その解釈であっています aaa 0 ... mode=0, index = -1 aaa ,5 ... mode = -1, index = 5 aaa 3, 8 ... mode = 3, index = 8 aaa Mode:=3 .... mode = 3, index = -1 aaa Index := 5 ... mode = -1, index = 5 aaa Index := 2, Mode := 9 ... mode=9, index =2 といった具合になります 最初の3項目は 引数を『,』区切った位置で判断されます 残りの3項目は 名前つき引数での呼び出しになり仮引数名とその仮引数の値を指定して使います

as_sh_yu
質問者

お礼

ありがとうございます。 半信半疑でしたが、これで納得がいきました。

関連するQ&A

  • Formオブジェクトについて

    Formオブジェクトに関する質問です。 ある関数にフォームオブジェクトを引数として渡してやりたいのですが、何かよい方法はありますでしょうか? 例) Private Sub cmdTest_Click(Index as Integer) Dim frm as Form If Index = 0 then Load_Test(Form 2) Else Load_Test(Form 3) End if End Sub Private Sub Load_Test(frm as Form) frm.Show frm.Label1.Caption = "TEST” End Sub

  • VB6のform Load

    Private Sub Form_Load() Form1.ScaleMode = 0 Form1.Scale (-10, 10)-(10, -10) Form1.Line (-10, 0)-(10, 0) Form1.Line (0, -10)-(0, 10) End Sub とやって座標画面を作ろうとしましたが Lineが表示されません。 仕方が無いので Private Sub Form_Load() Form1.ScaleMode = 0 Form1.Scale (-10, 10)-(10, -10) End Sub Private Sub Form_Activate() Form1.Line (-10, 0)-(10, 0) Form1.Line (0, -10)-(0, 10) End Sub とやりました。 そういうものだとあきらめるしかないのでしょうか?

  • VB.NET Form1からForm2を開いたり閉じたりする方法

    VB.NET2005でForm1にあるCheckBoxをTrueにするとform2をモードレスフォームとして開き、CheckBoxをFalseにするとform2を閉じる方法がわかりません。また、form2の[×]で閉じた時にはForm1にあるCheckBoxをFalseにする方法がわかりません。 '----------------------------------- Private Sub CheckBox2_CheckedChanged ・・・   Dim f_cnt As Integer   Dim form2 As New Form2()   f_cnt = My.Application.OpenForms.Count   If CheckBox1.Checked = True Then     If f_cnt = 1 Then form1.Show() 'モードレスフォームとして表示する   Else    form2.Close() ←閉じない   End If End Sub '-----------------------------------

  • VB2008 Formを関数の引数にする

    お世話になります VB2008で開発をしています Formを2つ作成し どちらも同じ名称のテキストBOX(TextBox1)コントロールを貼り付けています Publicの関数でそれぞれのFormに値をセットしたいのですが 「'TextBox1' は 'System.Windows.Forms.Form' のメンバではありません。」 とエラーが発生してしまいます 初歩的な質問で申し訳ありませんが ご助言頂けると助かります 宜しくお願い致します ソース: --------------------------------------------------- Module Module1 Public Sub Main() Dim Form1 As New Form1 Dim Form2 As New Form2 SetValue(Form1) SetValue(form2) End Sub Private Sub SetValue(ByVal obj As Form) obj.TextBox1 = "TEST" End Sub End Module ---------------------------------------------------

  • FORM1からFORM2にパラメータの引渡し

    Public class Form1 Private Sub Button1_Click(------------------) Dim textBox1 As String textBox1 = TextBox1.Text End Sub End Class Form1でボタンをクリックし、textBox1の値を モードレスで開いたForm2にtextBox1の値を渡したい と考えていますが、参考となるサイトがなく どのように書いたらいいのかわかりません…。 メソッド(textBox1) 'FORM1側 Public Sub メソッド(ByVal textBox1 As String) ' FORM2側 で出来ると思ったのですが、この場合モードレスで開いたとしても パラメータが渡せない?と思い…。 ヒントでもいいので、アドバイスをよろしくお願いします。

  • 配列を関数に渡す方法

    VB6.0のプログラムで質問があるのですが 下のプログラムのように配列num、num1を関数AAAに 渡したいと思うのですがどうすればいいのでしょうか? よろしくお願いいたします。 Option Explicit Private num(10) As Integer Private num1(10) As Integer Private Sub Write_Click()    AAA(num)    AAA(num1) End Sub Private Function AAA(???)    Dim i As Integer    For i = 1 To 10       ???(i) = i    Next i End Function

  • VB2012で質問

    VB2012ですが、電卓を起動している状態で、 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load AppActivate("電卓") End Sub というコードでForm1を実行してみると、どうしてもForm1がアクティブになってしまうのですが、電卓をアクティブにしたいので、どうすれば良いでしょうか? 環境)OS:Windows8     バージョン:VB2012                 …となっています。

  • VB2008 Form間の計算について

    VB勉強中のものです。 次のようにプログラムを作成したいですので よろしくお願いします。 要望: 1 From2のTextbox1 or Textbox2に"2001/05/05"ような書式で日付を入力 2 RadioButton1かRadioButton2の選択して 3 Form1の「DateTimePicker」を利用して、日数の差を計算し、 Form2の label3に結果を表示させる 例: From2のTextbox1 = 2001/01/01 Form1の「DateTimePicker」 = 2002/01/01 RadioButton1を選択したら、 Label3内に " 誕生日から生まれて365日となりました" という結果が出れば、問題がないです。 ------------ Form 1 --------------------- Public Class Form1 Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click 'labelをクリックして、form2を開く Dim frmTmp As New Form2 frmTmp.ShowDialog() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim intdate As Integer intdate = DateDiff(DateInterval.Day, DateTimePicker1.Value, Now) Label1.Text = "誕生日から生まれて" & intdate & "日となりました" End Sub End Class -------------------------------------------- -------------Form 2 ------------------------ Public Class Form2 Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged If RadioButton1.Checked = True Then Label3.Text = "*******わからない部分*******" End If End Sub End Class ----------------------------------------------------- 以上

  • vb.netでForm_Loadの終了判定について

    vb.netのWindowsApplicationでForm_Loadの終了判定ってどうやっていますか? Visual Studio 2015 visual Basic .net TextChangedイベントなどが、Form_Loadの前に走って 「オブジェクト参照がオブジェクト インスタンスに設定されていません。」 になってしまいがちですが、 これを回避するために、とりあえず下記の対応をしましたが、 スイッチをONにするハンドルはMyBase.Loadで良かったのか、 普通はどうするのか、 などをご教授ください。 <暫定対応> Dim SW_FormLoad As Boolean Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load  処理  :  SW_FormLoad = True End Sub Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged  If Not SW_FormLoad Then Return  処理 End Sub

  • VB6 Form内のDragDrop

    VB6でForm内にCommandButtonがいくつか有ります。 各CommandButtonはClickするとShellオブジェクトでファイルを開く様になっています。 やりたいことは 2つのCommandButton間をDragDrop?によりCaptionを入れ替えたいです。 (CommandButton間をマウスDragDropでCaption名入れ替え) MouseDownとDragDropイベントで何とかなると思いましたがうまくいきません。 Dim dd As Integer Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbLeftButton Then dd = 1 'CommandボタンNo, End If End Sub Private Sub Command2_DragDrop(Source As Control, X As Single, Y As Single) Dim cn As String cn = Command2.Caption Command2.Caption = Controls("Command" & dd).Caption Controls("Command" & dd).Caption = cn End Sub CommandButtonプロパティでDragModeを自動にするとShellオブジェクトでファイルが開かないし サイトで調べたところファイルの移動やコマンド自体の移動などで分かりませんでした。 ご教授お願い致します。

専門家に質問してみよう