• 締切済み

スプレッドに値を設定する方法

VB初心者です。単純な質問で申し訳ありませんが、 以下のスプレッドでcheckBox2にチェックしたとすると 子画面出力します。そのときにチェックが消えてしまいます。そのチェックをつけたままに変更したいです。 オブジェクト名:sprService ______________________ |checkBox1 | 001 | AAAA |  a   |  |----------|-----|------|----------|    |checkBox2 | 002 | BBBB |  b   | |----------|-----|------|----------| |checkBox3 | 003 | CCCC |  c   | |----------|-----|------|----------| 単純にSetTextするのかなと思って書いてみたのですが 思うようにいきません。 Private Sub sprService_ButtonClicked(ByVal Col As Long, ByVal Row As Long, ByVal ButtonDown As Integer) Dim tim If ButtonDown = 1 Then sprService.GetText 1, Row, tim End If 'スプレッドにセット sprService.SetText(1,Row,tim) End Sub わかりにくくてすいません。どなたか教えてください。

みんなの回答

  • ki-ton
  • ベストアンサー率50% (3/6)
回答No.1

自分でsettextすると またクリックイベントが起きるはずです。 そこら辺でおかしくなってるのでは? 自分でいれなくても、チェックがつきませんかね

関連するQ&A

  • スプレッドについて

    VBも素人なんですが、スプレッドのとり方を教えてください。 以下のスプレッドが既存で存在していてチェックボックスが各行ごとにあるのですが、チェックしたときに呼ばれる関数を以下に書きました。 例えば002という値を取得したいときどうコーディングしたらよいでしょうか?  _____________  | 001 | AAAA |  a   |   |-----|------|----------|     | 002 | BBBB |  b   |  |-----|------|----------|  | 003 | CCCC |  c   |  |-----|------|----------| ※関数の中身は適当です。どうやったらとれるか試行錯誤しています。。。 Private Sub sprService_ButtonClicked(ByVal Col As Long, ByVal Row As Long, ByVal ButtonDown As Integer) Dim intbutton As Integer Col = Row intbutton = ButtonDown sprService.Col = sprService.Row sprService.Col = sprService.Row2 End Sub

  • VB2008EEのチェックボックスにて、

    VB2008EEのチェックボックスにて、 9個のチェックボックスをオン/オフで9個のテキストボックスに文字を表示/非表示させる場合、 一旦チェックをオンにすると値が入ったままになって、オフにしても表示されてしまうため チェックがオフのものはボタン1クリックで空にしています。 1~9まであるのですが、1~4までは機能しているのですが、5~9が機能しません。 1~4にチェックが入っていると下記は実行されません。 5~9にチェックが入っていても下記が実行されてしまいます。      (実際は各番号)         ↓ If CheckBox5.CheckState = CheckState.Unchecked Then layp5 = "" End If なぜ4までと5からで動作が変わるのでしょうか? -------------------------------------------------------------- Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged layp1 = "1" End Sub '実際は2~8も記述あり Private Sub CheckBox9_CheckedChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged layp9 = "9" End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal eAsSystem.EventArgs) Handles Button1.Click If CheckBox1.CheckState = CheckState.Unchecked Then layp1 = "" End If '実際は2~8も記述あり If CheckBox9.CheckState = CheckState.Unchecked Then layp9 = "" End If If (layp1 = "1") Then TextBox1.Text = "aaaaa" End If If (layp2 = "2") Then TextBox2.Text = "bbbbb" End If If (layp3 = "3") Then TextBox3.Text = "ccccc" End If If (layp4 = "4") Then TextBox4.Text = "ddddd" End If If (layp5 = "5") Then TextBox5.Text = "eeeee" End If If (layp6 = "6") Then TextBox6.Text = "fffff" End If If (layp7 = "7") Then TextBox7.Text = "ggggg" End If If (layp8 = "8") Then TextBox8.Text = "hhhhh" End If If (laypca = "9") Then TextBox9.Text = "iiiii" End If End Sub

  • スプレッドのチェックボックスについて

    VB初心者です。 質問(1) 単純にチェックボックスがチェックされたの判断はどうすればいいのでしょうか? オブジェクト名:sprService ______________________ |checkBox1 | 001 | AAAA |  a   |  |----------|-----|------|----------|    |checkBox2 | 002 | BBBB |  b   | |----------|-----|------|----------| |checkBox3 | 003 | CCCC |  c   | |----------|-----|------|----------| 質問(2) 既存の機能ではある動作でsprService全体でロックがかかってしまいます。 checkBox2だけロック解除はできますか? この問題で1日費やしてしまいました。。 ヒントでもよいのでお願いいたします。

  • 0から12までの値nを入力し、nと階乗n!の値を表示しなさいという問題

    0から12までの値nを入力し、nと階乗n!の値を表示しなさいという問題ですが、一つの数字しか計算が出来ません 5と12の場合は String "5 12" から型 'Long' への変換は無効です。と出てきてしまいます。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim n As Long Dim f As Long n = CLng(TextBox1.Text) ←ここにエラーが出ます。 TextBox2.Text = CStr(Recur(n)) End Sub Public Function Recur(ByVal arg As Long) As Long If arg = 1 Then Recur = arg Exit Function End If Recur = arg * Recur(arg - 1) End Function End Class というプログラムです。分かる方よろしくお願いします。 実行エラーです。

  • Visual Basic 合計がうまく出せません。

    Visual Basicを習い始めたばかりですので、コードが分かり難くてすみません。チェックボックスとラジオボタンを使って合計等を出したいのですが、下のコードだとTax、Subtotal、Totalが0になってしまいます。各々のチェックボックスとラジオボタンに下のコードを入れてから、合計等が0になってしまいました。その前は、きちんと計算は出来ていたのですが。ご教授宜しくお願いいたします。 ---------------------- Private Sub Checkbox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Checkbox1.CheckedChanged Dim checkbox1 As Double = 450.40 Dim checkbox2 As Double = 871.65 Dim checkbox3 As Double = 1860.56 Dim radiobutton1 As Integer = 0 Dim radiobutton2 As Double = 250.45 Dim radiobutton3 As Double = 674.24 Dim sum As Double If checkbox1.Checked = True Then sum += checkbox1 End If If checkbox2.Checked = True Then sum += checkbox2 End If If checkbox3.Checked = True Then sum += checkbox3 End If If radiobutton1.Checked = True Then sum += radiobutton1 End If If radiobutton2.Checked = True Then sum += radiobutton2 End If If radiobutton3.Checked = True Then sum += radiobutton3 End If txtSum.Text = FormatCurrency(sum) End Sub ---------------------------- Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click Dim Car As Double Dim Tax As Double Dim Sum As Double txtTax.Text = Format((Car + Sum) * (0.12), "$######.##") ‘Taxの計算 txtSubtotal.Text = Format(Car + Sum + Tax, "$######.##") ‘Subtotalの計算 Dim Subtotal As Double Dim Trade As Double txtTotal.Text = Format(Subtotal + Tax, "$######.##")  ‘合計の計算 End Sub -----------------------

  • スプレッドの制御

    VB6.0について質問です。 スプレッドでマウスのカーソルがあたっている行のバックカラーを変えたいのですがうまくいきません。 MouseMoveイベントでやっています。 以下のソースで実行しており通常だと問題なく実行できるのですが 強制的にマウスカーソルが何行目にあるかを計算していますので スプレッドをスクロールするとスクロールした行だけズレが生じてしまいます。 表示されている行だけを認識する方法はないでしょうか? Private Sub spdlist_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Dim actrow With spdlist .Col = -1 actrow = Int(y / 400) .Row = actrow .BackColor = vbred End With End Sub

  • 2つのVBAを組み合わせる方法

    お世話になります、2つのVBAを組み合わせる方法で迷っています。 1つ目が Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long, k As Long, myNum As Long If Intersect(Target, Range("C1,B9:B39")) Is Nothing Or Target.Count > 1 Then Exit Sub Application.EnableEvents = False With Target If .Column = 3 Then myNum = WorksheetFunction.Max(Range("B9:B39")) If IsDate(.Value) Then For i = 9 To 39 If Cells(i, "A").Value = "" Then Cells(i, "B").Value = "" Else Cells(i, "B") = myNum + i - 8 End If Next i End If Else i = .Row If .Value = "" Then Range(Cells(i + 1, "B"), Cells(39, "B")).ClearContents Else For k = i + 1 To 39 If Cells(k, "A").Value = "" Then Cells(k, "B").Value = "" Else Cells(k, "B") = Cells(k - 1, "B") + 1 End If Next k End If End If End With Application.EnableEvents = True End Sub です。 2つめが Private Sub Worksheet_Change(ByVal Target As Range)  Application.EnableEvents = True If Intersect(Target, Range("R8:R38")) Is Nothing Then Exit Sub Application.EnableEvents = False Range(Cells(Target.Row, 18), Cells(39, 18)).Value = Target.Value Application.EnableEvents = True End Sub です。2つのPrivate Sub Worksheet_Change(ByVal Target As Range)イベントのVBAですが、どのようにして組み合わせれば良いのでしょうか?

  • vaSpreadのチェックボックスとコマンドボタンについて

    VBの初心者です。よろしくお願いします。 VB6.0&vaSpread3.0を使用しています。 Spreadの同一行にコマンドボタンとチェックボックスを配置しています。 コマンドボタンをクリックすると1行削除するようにしたいと思っています。 ButtonClickedにて1行削除できるよう、記載したのですが、 チェックボックスをクリックしてもButtonClickedが反応し、1行削除されてしまいます。 コマンドボタンとチェックボックスを使い分けたい場合、どのように記載したらよろしいでしょうか? 下記にコードを記載します。 Private Sub vaSpread1_ButtonClicked(ByVal Col As Long, ByVal Row As Long, ByVal ButtonDown As Integer) With vaSpread1 .Row = Row .Row2 = Row .BlockMode = True .Action = ActionDeleteRow .BlockMode = False .MaxRows = .MaxRows - 2 End With End Sub よろしくお願いいたします。

  • VB2008EEラジオボタンにて、

    VB2008EEラジオボタンにて、 チェックされていない時、というのはif文で指定できるでしょうか? チェックボックスは、下記で出来ますが、ラジオボタンでは出来るでしょうか? Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If CheckBox1.CheckState = CheckState.Unchecked Then   aaa = "1" End If End Sub 複数のラジオボタンがあって1つ選んだ後に別のを選び直した後に、選ばれてないほうの値を変えたいです。 Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged aaa = "1" End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged bbb = "2" End Sub

  • VB2008EEのラジオボタンのチェック無し

    VB2008EEのラジオボタンのチェック無し     4つにチェックを入れてしまうと、全ての変数に値が入ってしまい、ボタンクリック時にチェックが 入っていないのを含めて、batファイル4つとも実行されてしまいます。 チェックボックスだと、下記でチェックされていないもの値を変えられます。 If CheckBox1.CheckState = CheckState.Unchecked Then   aaa = "9" End If ラジオボタンでチェックされていない所の変数を変える事は出来るでしょうか? Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If (aaa = "1") Then Shell("cmd /c xxx.bat", AppWinStyle.NormalFocus, True) End If If (bbb = "2") Then Shell("cmd /c yyy.bat", AppWinStyle.NormalFocus, True) End If If (ccc = "3") Then Shell("cmd /c zzz.bat", AppWinStyle.NormalFocus, True) End If If (ddd = "4") Then Shell("cmd /c www.bat", AppWinStyle.NormalFocus, True) End If End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged aaa = "1" End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged bbb = "2" End Sub Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged ccc = "3" End Sub Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged ddd = "4" End Sub

専門家に質問してみよう