• ベストアンサー

VB.NETとして書き換え

コマンドボタンを押すたびに ココ という文字をテキストボックスに書く。 Private Sub Command1_Click() Dim i As Integer i = Int(Rnd * 4) For c = 0 To 4 Text1(c).Text = "" Next c Text1(i).Text = "ココ" End Sub VB6ではこんなふうになると思います。 .NETではどう書けばいいのでしょうか?

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

  • ベストアンサー
  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.2

まだ締め切っていないようなので、別案です。 Private Sub Command1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Command1.Click   Dim t(4) As TextBox   Dim i As Integer   Dim c As Integer   t(0) = Text1   t(1) = Text2   t(2) = Text3   t(3) = Text4   t(4) = Text5   i = Int(Rnd() * 4)   For c = 0 To 4     If c = i Then       t(c) = "ココ"     Else       t(c) = ""     End If   Next End Sub

hiyoruki
質問者

お礼

2回もの回答ありがとうございます。 しかし不便になりましたね・・・

その他の回答 (1)

  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.1

.NETでは、コントロール配列が使用できないので以下のようにしてみました。 如何でしょうか。 Private Sub Command1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Command1.Click   Dim t(4) As String   Dim i As Integer   Dim c As Integer   i = Int(Rnd() * 4)   For c = 0 To 4     If c = i Then       t(c) = "ココ"     Else       t(c) = ""     End If   Next   Text1.Text = t(0)   Text2.Text = t(1)   Text3.Text = t(2)   Text4.Text = t(3)   Text5.Text = t(4) End Sub

hiyoruki
質問者

お礼

ご回答ありがとうございました。 やはりこうするしかないのでしょうか?

関連するQ&A

  • このような使い方は間違っているのでしょうか?(VB.NET2002)

    このような使い方は間違っているのでしょうか?(VB.NET2002) Dim count As Int16 Private Sub JOB(ByVal x) x = x + 1 TextBox1.Text = x End Sub Private Sub Button1_Click(・・・・ JOB(count) End Sub

  • VB6でスロットを作成したい

    VB6歴2ヶ月の初心者です。 フォーム上に ラベルコントロールが三つ コマンドボタンが二つ タイマーコントロールが一つ あります。 タイマーのプロパティは Enabled False Interval 10 です。 スロットを作成したいのですが、 ボタン1を一回押すごとに左からスロットが回り、 最後にボタン2で動きを止めたいのです。 一応自分でも書いてみたのですが、ここで行き詰まりました。 ウワァァァァァァヽ(`Д´)ノァァァァァァン! Private Sub Command1_Click() Timer1.Enabled = True End Sub Private Sub Command2_Click() Timer1.Enabled = False End Sub Private Sub Timer1_Timer() Dim slot As Integer slot = Int(Rnd(1) * 9 + 1) Label1.Caption = slot End Sub 思い通りに動かすにはどんなコードにしたらいいですか?

  • 乱数で・・・

       ラベル10枚に1~10までを乱数を入れたいのです ただしダブらない どうすればいいのでしょうか?? 自分で考えたのですがバグがあります ※コマンドをクリック ※クローンは用意済み Private Sub Command1_Click() Dim a(0 To 9) For i = 0 To 9 a(i) = Int(Rnd * 10)+1  For b = 0 To 9   If a(i) = a(b) Then     If i <> b Then     a(i) = Int(Rnd * 10) + 1     End If   End If   Next b Next i For c = 0 To 9 Label1(c).Caption = a(c) Next c End Sub バグの原因はなんとなくわかるのですがどうすればいいのか分かりません 素人ですいません。

  • Currency (通貨型)に関して教えてください

    Currency (通貨型)に関して教えてください。(VB5です) Private Sub Command1_Click() Dim a As Currency a = 222222 For i = 1 To a Next i End Sub 上のコードではFor文が一度も実行されずに終わってしまいます。 Private Sub Command1_Click() Dim a As Currency a = 22222 For i = 1 To a Next i End Sub これだとちゃんとiが22222まで実行されます。 一体どうしてでしょうか。 よろしくお願いします。

  • 値渡しについて

    UserForm1で以下のように求めた値「R」を UserForm2に渡すにはどのようにすればよいのでしょうか。 **************************************** <UserForm1(コード)> Public R As Integer ----------------------------------- Private Sub CommandButton1_Click()    Dim N As Integer        :    N = TextBox1.Text    R= N * 2 + 3        : End Sub **************************************** <UserForm2(コード)> Private Sub CommandButton1_Click()   Dim i As Integer       :   For i = 4 To R       :   Next i       : End Sub **************************************** どなたか教えて下さい。

  • VB.NETからC++のdll連携(double)

    プログラム初心者です。 double型の配列をVB2010とC++で作成したdllで連携したいのですが、値が正しく渡されません。 値が正しく渡せるにはどうしたら良いでしょうか? 以下がその内容です。(int型の場合)これをdouble型で渡したいのですが。 C++ではSafeArrayの扱いになるとのことですが、方法が良く分かりません。 VBソース ----------------- ' Arrays.vb Imports System Imports Microsoft.VisualBasic Imports System.Runtime.InteropServices Friend NotInheritable Class NativeMethods Private Sub New() End Sub Declare Function TestArrayOfInts Lib "makedll.dll" ( _ <[In](), Out()> ByVal myArray() As Integer, ByVal size As Integer) As Integer End Class Public NotInheritable Class App Private Sub New() End Sub Public Shared Sub Main() ' *************** array ByVal ************** Dim array1(9) As Integer Console.WriteLine("Integer array passed ByVal before call:") Dim i As Integer For i = 0 To array1.Length - 1 array1(i) = i Console.Write(" " & array1(i)) Next i Dim sum1 As Integer = NativeMethods.TestArrayOfInts(array1, array1.Length) Console.WriteLine(ControlChars.CrLf & "Sum of elements:" & sum1) Console.WriteLine(ControlChars.CrLf & "Integer array passed ByVal after call:") For Each i In array1 Console.Write(" " & i) Next i Console.Read() End Sub End Class //********************************** C++作成dllソース(makedll.cpp) extern "C" MAKEDLL_API int TestArrayOfInts( int* pArray, int size ) { int result = 0; for( int i = 0; i < size; i++ ) { result += pArray[ i ]; pArray[ i ] += 100; } return result; } //********************************** C++作成dllソース(makedll.h) #ifdef MAKEDLL_EXPORTS #define MAKEDLL_API __declspec(dllexport) #else #define MAKEDLL_API __declspec(dllimport) #endif extern "C" MAKEDLL_API int TestArrayOfInts( int* pArray, int size ); //********************************** C++作成dllソース(makedll.def) LIBRARY makedll.dll EXPORTS TestArrayOfInts PRIVATE

  • VB6のバグか?

    VB6のバグか? 下記のように、 文字列「278754742940.733」を数値に変更し、1000倍にすると、278754742940732になったんですよ。 Private Sub Command1_Click() Dim s As String s = "278754742940.733" Dim d As Double d = Val(s) * 1000 MsgBox Fix(d) 'intも同じ End Sub 結果: 278754742940732 どうすれば、解決できますか?

  • Microsoft Visual Basic 6.0でテキスト1に表示させたい。

    Dim i As Integer Private Sub Command1_Click() For i = 100 To 1 Step -1 If i Mod 3 = 2 Then Debug.Print i End If Next i End Sub のプログラムがあるのですがプログラミング結果が イミディエイトの方に表示されるのですが このプログラムの結果をtext1に表示させたいのですが どのようなプログラムにすれば良いでしょうか? 詳しい方教えてください。

  • VBで倍数を出したい

    VBで倍数を出したい よろしくお願いします。 おそらく基本なんだと思うのですが、さっぱりわかりません。 TextBox Label Buttonと並んでいて、 TextBoxに入った整数に対し、 Buttonを1度押すたびに、 Labelに倍数が表記されていく、 という趣旨なのですが。 まず、前段階として下記を作らされました。 Public Class Form1 Dim i As Integer Dim m As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click i = TextBox1.Text lblmessage.Text = i + m m = lblmessage.Text End Sub End Class このように、labelの数字がどんどん変わっていくのはできたのですが、問題は、 Text…10 Label…10    20    30    40    50    60    70    80    90    100 となり、しかも一度に出るのではなく、Buttonひと押しにつき一つの解が出ね 次の一押しで改行され解が出る。 かつ、100で打ち止めにすること…だそうです。 いちおうめちゃくちゃですが、みんな風に作りました。 Public Class Form1 Dim a As Integer Dim b As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim b As Integer = 10 a = TextBox1.Text lblMessage.Text = a & ControlChars.CrLf & a + b End Sub End Class どうかヒントだけでもお願いします。

  • VB初心者です

    計算結果が"7"の時に限り、「当たり!」と表示される、ちょっと意味不明な計算機を作っています。 現在、下記のように書いてますが、何故かうまくいきません。(当たりが表示されない 何故でしょうか?お助けください。。m(_ _)m Private Sub Command1_Click() Label1.Caption = Str(Val(Text1.Text) + Val(Text2.Text)) Label3.Caption = "+" Label4.Visible = False '画像を隠す。 'いずれかの数字が「7」のとき、メッセージを表示する。 If Label1.Caption = "7" Then Label4.Visible = True End If End Sub Private Sub Command2_Click() End End Sub Private Sub Command3_Click() Label1.Caption = Str(Val(Text1.Text) * Val(Text2.Text)) Label3.Caption = "*" End Sub Private Sub Command4_Click() Label1.Caption = Str(Val(Text1.Text) - Val(Text2.Text)) Label3.Caption = "-" End Sub Private Sub Command5_Click() Label1.Caption = Str(Val(Text1.Text) / Val(Text2.Text)) Label3.Caption = "/" End Sub

専門家に質問してみよう