xとyの数値を入れ替えたいです。
このままで実行するとメッセージボックスに2と表示されます。
コードlass Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim x As Integer Dim y As Integer x = TextBox1.Text y = TextBox2.Text change(x, y) End Sub Private Function change(ByRef a As Integer, ByRef b As Integer) As Integer Dim c As Integer c = a a = b b = c Return MsgBox(a, b) End Function End Class
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
0 と表示されるということはコンパイルできているということで間違いありませんか?
それなら change の戻り値を表示しているからでしょう。
x と y を表示してみてください。
#追記
VB.NET
1Class Form1 2 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 3 Dim x As Integer 4 Dim y As Integer 5 6 x = TextBox1.Text 7 y = TextBox2.Text 8 9 change(x, y) 10 11 MsgBox(x) 12 MsgBox(y) 13 End Sub 14 15 Private Sub change(ByRef a As Integer, ByRef b As Integer) 16 Dim c As Integer 17 18 c = a 19 a = b 20 b = c 21 End Sub 22End Class
#追記
もし TextBox の内容を交換したいということなら
VB.NET
1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 2 Dim t As String 3 t = TextBox1.Text 4 TextBox1.Text = TextBox2.Text 5 TextBox2.Text = t 6 End Sub
投稿2018/11/18 02:54
編集2018/11/20 05:05総合スコア28656
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/20 11:52
2018/11/20 12:09
0
MsgBox(change(x, y))は、change(x, y)のReturn値をメッセージボックスに表示します。
ただし、changeメソッドを見ると、Return値がセットされていません。
changeメソッドのReturn値の型はIntegerなので、何も設定されていないと初期値として0を返します。
なので、メッセージボックスに0が表示されるのは正しい結果です。
例えば、例示コードを以下のように変更すると、例えば元のxの値が3, yが5だった場合、メッセージボックスに「x=5 y=3」のように表示され、xとyが入れ代わったことが分かります。
VB
1Public Class Form1 2 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 3 Dim x As Integer 4 Dim y As Integer 5 6 x = textbox1.text 7 y = textbox2.text 8 9 change(x, y) 10 MsgBox("x=" & x.Tostring & " y=" & y.ToString) 11 End Sub
2018/11/20 追記
誤った情報を元に提示コードを修正されたようですが、「MsgBox(a, b)」の使い方は誤りです。
おそらくMsgBoxに表示される値はaの値、つまりTextBox2.Textの値になると思いますが、MsgBoxの第2引数(「MsgBox(a, b)」のbに該当する所)は、メッセージボックスに表示するボタンや表示アイコン(警告マークや禁止マークなど)等を指定するためのものです。
おそらくbの値(つまりTextBox1.Textの値)により、ボタン表示や表示アイコンが変わるでしょう。
詳細は、以下サイトをご覧ください。
https://msdn.microsoft.com/ja-jp/library/cc410277.aspx
投稿2018/11/18 06:51
編集2018/11/20 04:18総合スコア772
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
change(x, y))の関数では、何も返してないよ?だから0ってでるんじゃない?
また、関数内でreturnをつけても、求められる解は一つだけですけど。
change関数内の最後の行に
MsgBox(a,b)
かな?
Private Sub Button1_Click内のmsgboxは削除?
投稿2018/11/18 06:35
編集2018/11/18 06:37総合スコア341
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/18 13:21 編集
2018/11/18 14:14
2018/11/18 14:22
2018/11/18 15:12
2018/11/18 23:05
2018/11/19 02:57
2018/11/19 03:05
2018/11/19 03:18
2018/11/19 03:31
2018/11/19 03:36
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。