• 締切済み

サイコロの出目を全部表示したいです

Visual Basic2008Expressを使っています フォームにボタンとテキストボックスを貼り付けて ボタンをダブルクリックして次のようにプログラムを書きました Dim saikoro As New Random Dim deme As Decimal Select Case deme Case 1 Textbox1.text = ("出目1") Case 1 Textbox1.text = ("出目2") Case 1 Textbox1.text = ("出目3") Case 1 Textbox1.text = ("出目4") Case 1 Textbox1.text = ("出目5") Case 1 Textbox1.text = ("出目6") End Select これを正常に作動しました。そこで例えば10回サイコロを降った出目の結果はすべて表示するプログラムを作りたいんですがどうすればいいのでしょうか?Textbox1のところをRichTextBox1を変えてプログラム書きましたが結果は同じでした。 教えてください。

みんなの回答

回答No.1

えっと…まず、それで「正常に動作」してますか? ボタン押すごとにちゃんとテキスト変わります? と言うよりテキスト出ますか? (ソースの一部を省略してるのかもですが…) 以下は、起動時点で、0以上1未満の乱数を発生させてテキストボックスに表示させるソースです。 Form1にTextBox1を貼り付け、TextBox1のMultiLineプロパティをTrueにしてください。 その後、TextBox1の縦を広げてください。 Public Class Form1 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim tmp As New Random TextBox1.Clear() For i As Integer = 1 To 10 TextBox1.Text &= tmp.NextDouble().ToString & vbCrLf Next End Sub End Class これを元に、いろいろ調べたりして作り直してみてください。 乱数の使い方然り、Select Caseの使い方然り。 あと、変数 deme は、1~6しか入らないので、普通Decimalは使いません。 IntegerかShortで十分。Byteでもいいぐらい。

abc-1356
質問者

補足

できれば自分が書いたプログラムに追加する形でお願いしたいです 例えば最初 出目1 が出たとします 次が 出目6 だとします テキストボックスに2回目の 出目6 が出た場合 最初の出目1 が消えてしまいます テキストボックスのMultiLineプロパティをTureにしても 結果は同じでした

関連するQ&A

  • VB2008、文字色について教えて下さい

    VB2008を使用しています。 現在、Form内複数あるTextBox内の文字をいくつか選択し、RichTextBox内に"・"で区切って代入するプログラムを作成しています。 その際、RichTextBox内に代入されたTextBoxの文字色を赤色に変える(元は黒色です)コードを下記のように作成しました。 Dim strList() As String strList = RichTextBox1.Text.Split("・"c) For Each strMoji As String In strList Select Case strMoji Case TextBox1.Text TextBox1.ForeColor = Color.Red Case TextBox2.Text TextBox2.ForeColor = Color.Red End Select Next 上記コードは問題ないのですが、RichTextBox内に一度代入された複数のTextBoxの文字から、いくつかを選択して削除した際、選択したTextBoxの文字を元の黒色に戻す方法がわかりません。単純に全てのTextBoxの文字色を黒色に戻すコードを書いてしまうと、同様の操作を他のRichTextBoxに適用した場合、そちらに代入された文字色も黒色に戻ってしまいます。上記のコードを応用すれば出来そうなのですが、良い方法はないでしょうか?上記コード3行目の「In」を「Out」や「Cut」に変更しても構文エラーになってしまいました。

  • RichTextBoxに代入されたTextBoxの数を表示

    VB2008を使用しています。現在、10個のTextBoxとそれに対応するCheckBoxを作成し、チェックの入ったTextBox内の文字をRichTextBoxに代入するプログラムを作成しています。そこでRichTextBoxに代入されたTextBoxの数を別のTextBoxに表示させたいのですが何か良い方法はありますでしょうか?現在、下記のようにコードを組んであります。 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click RichTextBox1.Clear() If Me.CheckBox1.Checked = True Then RichTextBox1.Text = TextBox1.Text If Me.CheckBox2.Checked = True Then If RichTextBox1.Text <> "" Then RichTextBox1.Text = RichTextBox1.Text & "・" End If RichTextBox1.Text = RichTextBox1.Text & TextBox2.Text ・ ・ ・ If Me.CheckBox10.Checked = True Then If RichTextBox1.Text <> "" Then RichTextBox1.Text = RichTextBox1.Text & "・" End If RichTextBox1.Text = RichTextBox1.Text & TextBox10.Text End If

  • CheckBoxがTrueの場合に表示をさせるには?

    VB2008を使用しています。 3つのCheckBox1~3とそれに対応した3つのTextBox1~3を準備し、 Buttonを押すとCheckBoxがTrueのものだけをRichTextBox1に表示 させたくて下記のプログラムを作成しました。 しかしCheckBox1とCheckBox3については上手く作動するのですが CheckBox2について不具合が発生します。 (不具合) CheckBox1=TrueでButtonを押すとRichTextBox1にTextBox1を表示。 その後、CheckBox3=TrueでButtonを押すとRichTextBox1にTextBox1. TextBox3と表示。 ここまでは良いのですが、 CheckBox2=TrueでButtonを押すとRichTextBox1にTextBox2を表示。 その後、CheckBox3=TrueでButtonを押すとRichTextBox1にTextBox2. TextBox2.TextBox3と表示されてしまいTextBox2の内容が重複して しまいまいます。 何か良い解決策がありましたら教えて下さい。 よろしくお願いいたします。 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click     If Me.CheckBox1.Checked = True Then RichTextBox1.Text = TextBox1.Text End If     If Me.CheckBox2.Checked = True Then If RichTextBox1.Text <> "" Then RichTextBox1.Text = RichTextBox1.Text & "."     End If RichTextBox1.Text = RichTextBox1.Text & TextBox2.Text     End If If Me.CheckBox3.Checked = True Then If RichTextBox1.Text <> "" Then RichTextBox1.Text = RichTextBox1.Text & "." End If RichTextBox1.Text = RichTextBox1.Text & TextBox3.Text End If End Sub

  • さいころでぞろ目が出る確率

    x個のさいころを投げたとき、出目yがz個でるまでの回数と、処理にかかった時間を表示するプログラムを作りたいと思っています。 1~6までをランダムにx個表示するプログラムはできたのですが、ぞろ目の判定と時間の測定の方法がわかりません。 お時間があれば、プログラミングしていただけないでしょうか?

  • Case Eles

    ただいま私はこのようなプログラムを作っています。 Private Sub TextBox貸方_Change() Dim 貸方 As Integer Tx貸方 = TextBox貸方.value Select Case Tx貸方 Case 101 TextBox貸方摘要.Text = "現金" Case 102 TextBox貸方摘要.Text = "当座預金"            ・            ・            ・  'Case Eles 'MsgBox ("該当コード無し") End Select End Sub しかしなぜか1011などの存在しないコードを入力してもメッセージボックスが表示されません!誰かお力をお貸しください!

  • 全部のサイコロをjavascriptで動かしたい。

    たくさんのサイコロを画面が切り替わったと同時に出てきて、サイコロが全部ランダムに違う数字になって出てくるようにしたいのですが、HTML文の <li><img class="simap" src="img/MAP.png"/><img src="sai1.png" class="saikoro" name="saikoro"></li>の行が1個だったら、画面が切り替わるとちゃんとランダムに数字が変わるうようになり、何も問題ないのですが、 この行が2行以上になると、ランダムになるはずなのに、なぜかなりません。 毎回サイコロの目は1です。 どうしてランダム機能がちゃんと機能しないのか、 どう修正すればいいのか、 アドバイスお願いします。 *****************HTML文********************* <html> <head> <link rel="stylesheet" href="daisu.css" type="text/css"/> <script src="daisu.js"></script> <title>ダイス戦略</title> </head> <body> <div id="title"> <p>ああああ</p> <p><button id="btn_gamennkirikae" type="button">あああ</button></p> </div> <div id="gamegamenn"> <p><button id="btn_hitori" type="button">ああああ</button></p> </div> <div id="map"> <ul id="sima"> <li><img class="simap" src="img/MAP.png"/><img src="sai1.png" class="saikoro" name="saikoro"></li> **********ここ*********************************** </ul> </div> <body> </html> ******************CSS文******************** #title{ width:1200px; height:800px; border:4px solid gray; text-align:center; margin-top:70px; margin-left:auto; margin-right:auto; } #gamegamenn{ width:1200px; height:800px; border:4px solid gray; text-align:center; margin-top:70px; margin-left:auto; margin-right:auto; } button#btn_gamennkirikae{ width: 150px; height: 50px; margin-top:300px; } #map{ width:1200px; height:800px; border:4px solid gray; text-align:center; margin-top:70px; margin-left:auto; margin-right:auto; } #map li{ float:left; list-style-type: none; margin-left:-50px; } #map img{ } #sima{ float:left; margin-left:50px; } .saikoro{ width:50px; height:50px; position:relative; right:80px; bottom:25px; } .simap{ } *****************JS文********************* window.addEventListener('load',initGame,false); function initGame(){ var dialog = document.querySelector('#title'); dialog.style.display='block'; var dialog =document.querySelector('#gamegamenn'); dialog.style.display='none'; var dialog =document.querySelector('#map'); dialog.style.display='none'; var btn =document.querySelector('#btn_gamennkirikae'); btn.addEventListener('click',gamegamenn,false); } function gamegamenn(){ var dialog = document.querySelector('#title'); dialog.style.display='none'; var dialog =document.querySelector('#gamegamenn'); dialog.style.display='block'; gamestart(); } function gamestart(){ var btn =document.querySelector('#btn_hitori'); btn.addEventListener('click',hitori,false); } function hitori(){ var dialog =document.querySelector('#gamegamenn'); dialog.style.display='none'; var dialog =document.querySelector('#map'); dialog.style.display='block'; chg(); } function chg(){ sai=new Array("sai0.png","sai1.png","sai2.png","sai3.png","sai4.png","sai5.png","sai6.png"); r=Math.random()*6; //乱数表 rr=Math.floor(r)+1;   //切り捨てて+1する document.saikoro.src=sai[rr]; //サイコロを入れ替える }

  • Excel VBA 計算結果の表示方法

    ExcelのVBAでコマンドボタンを押すと以下のようなプログラムを考えています。 '変数宣言 Dim MIN As Integer Dim MAX As Integer Dim i As Integer MIN = CInt(TextBox1.Text) MAX = CInt(TextBox2.Text) 'ループ For i = MIN To MAX If i Like "*3" Or i Like "3*" Or i Mod 3 = 0 Then End If Next i と、ここまでは考えたのですが、結果の表示方法を一つのメッセージボックスで カンマ区切りで表示させる方法が調べてもわかりませんでした。 If i Like....の結果を一つにまとめてそれを表示するのかな。。。? なんて考えておるのですが、皆様のご教授を承りたく思います。 宜しくお願いします。 ※テキストボックス、コマンドボタンはユーザーフォーム上にあります。

  • Select Case文についてご教授お願いします。

    助けて下さい。Select Case文についてご教授お願いします。現在VB2008にてプログラムを作成しているのですが、どうにも煮詰まってしまいました。 作成内容は、Excelの任意のSheetから文字をVB上のTextBox1~50に呼び出し、その内いくつかをCheckBoxとButtonを使用してRichTextBox1に表示させると共に、TextBox51に入力した文字をExcelから呼び出した任意の文字に対応したセルへ保存というものです。Excelからの呼び出しにIf文を使用しているため、同一プロシージャ内で別のIf文を使用してしまうと、先のIf文で決めた変数が反映されないためSelect Case文を使用して保存をさせようとしているのですが上手くいきません。以下に現在のコードを記載しますのでよろしくお願いいたします。 Private Sub Button1_Click~ Excel取得コード If RadioButton1.Checked = True AndAlso RadioButton13.Checked = True Then 'Sheetと列を選択 tuki = CType(Book.Worksheets.Item(2), Microsoft.Office.Interop.Excel.Worksheet) 'Sheet情報 COLUMN1 = "B" '列1情報 COLUMN2 = "F" '列2情報 ・ ・ ・ End If 'ここから先は指定したTextBoxをRichTextBoxに表示(先のIf文内の変数は未使用) RichTextBox1.Clear() If Me.CheckBox1.Checked = True Then RichTextBox1.Text = TextBox1.Text End If If Me.CheckBox2.Checked = True ThenIf RichTextBox1.Text <> "" Then RichTextBox1.Text = RichTextBox1.Text & "・" End If RichTextBox1.Text = RichTextBox1.Text & TextBox2.Text End If ・ ・ ・ End If 'ここから保存指示=エラー箇所 Select Case tuki.Range(COLUMN1 & "3").Value Case RichTextBox1.text = tuki.Range(COLUMN1 & "3").Value tuki.Range(COLUMN2 & "3").Value = TextBox51.Text Book.Save() という感じで作成しているのですが「String "" から型 'Boolean' への変換は無効です」と表示されます。 他のケースではIf文の変数をSelect Caseに対応できたので、この方法を選択しました。 基本的にSelect Caseの使い方が誤っていると思うのですが解決策が見つかりませんでした。 他の方法も含めて、良い案がありましたらご教授お願いいたします。 長文申し訳ありません。

  • ボタンを押した時のコーディング方法について

    ネットや書籍で調べてみたものの要領を得なかったため質問させていただきます。 開発環境:visual web developer 画面デザイン:テキストボックス(ID:TextBox1)、ボタン(ID:DeleteButton)、ボタン(ID:UpdateButton)、ボタン(ID:CloseButton) 従来の記述方法:ボタン一つずつの単位で押された時の処理を書いていました。 Protected Sub DeleteButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles DeleteButton.Click TextBox1.Text = "削除しました" End Sub Protected Sub UpdateButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles UpdateButton.Click TextBox1.Text = "更新しました" End Sub Protected Sub CloseButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CloseButton.Click TextBox1.Text = "終了しました" End Sub 今回やりたいこと: 押されたボタンのIDを何らかの方法で取得し、変数"ButtonID"に代入→Select Caseを使い、変数の値に応じて処理の振り分けを行う。 Sub Button_Click() Dim ButtonID As String = ???? Select Case ButtonID Case "DeleteButton" TextBox1.Text = "削除しました" Case "UpdateButton" TextBox1.Text = "更新しました" Case "ClseButton" TextBox1.Text = "終了しました" Case Else '処理は行わない End Select End Sub わからない点:押されたボタンのIDを取得する方法です。      もしわかる方がいましたらご助言いただけると助かります。 よろしくお願い致します。

  • 条件判断について教えて下さい。

    VB2008を使用している初心者です。 現在、RichTextBoxとCheckBoxとそれに対応したTextBoxを準備し、CheckBoxがTrueのTextBox.TextをRichTextBoxに代入するプログラムを作成しています。RichTextBoxにはCheckBoxをTrueにした分だけ複数のTextBox.Textを代入させています。ここまでのプログラムは下記コードで問題なく作動しています。 Button1を押す。 RichTextBox1.Clear() If Me.CheckBox1.Checked = True Then RichTextBox1.Text = TextBox1.Text End If If Me.CheckBox2.Checked = True Then If RichTextBox1.Text <> "" Then RichTextBox1.Text = RichTextBox1.Text & "・" End If RichTextBox1.Text = RichTextBox1.Text & TextBox2.Text End If ・ ・ ・ If Me.CheckBox20.Checked = True Then If RichTextBox1.Text <> "" Then RichTextBox1.Text = RichTextBox1.Text & "・" End If RichTextBox1.Text = RichTextBox1.Text & TextBox20.Text End If ここで問題なのですが、RichTextBox1への代入完了後、FalseにしたCheckBoxを再度True(代入時に選択したもののみ)にするコードをButton2に作成したいのですが上手くいきません。例えば下記のコードですと、RichTextBoxに1つだけTextBoxが入っている場合しかCheckBoxのTrueが戻りません。 If Me.CheckBox1.Checked = False Then If RichTextBox1.Text = TextBox1.Text Then Me.CheckBox1.Checked = True End If End If ・ ・ ・ If Me.CheckBox20.Checked = False Then If RichTextBox1.Text = TextBox20.Text Then Me.CheckBox2.Checked = True End If End If これはIf RichTextBox1.Text = TextBox1.Text Thenにしてしまっているためだと思いますが、これをどう修正したら良いかわかりません。もしお時間がある方みえましたらご教授お願いいたします。