フォームにボタンをはりつけてCommand1 index=0にします。

ボタンをクリックされたらボタンを2個(1個ふやす)にしたいときは
どうすればできますか

教えてください。

A 回答 (3件)

#1の方と同じですね。



Command1(0)をFormに張りつけ(コントロール配列で作成)ておいて、
Command1(0).Visible = False
にしておきます。

そして、Command2をFormに張りつけて、
ボタンクリックでボタンが見えます。

Private Sub Command2_Click()
Load Command1(1)
Command1(1).Caption = "aaa"
Command1(1).Top = 400
Command1(1).Height = 360
Command1(1).Visible = True
End Sub

この回答への補足

Command2をFormに張りつけないでおこないたいのです
いくつでもふえるようにしたいのですが
理由いくつ増えるかははからないので
 

補足日時:2001/10/26 10:27
    • good
    • 0
この回答へのお礼

ありがとうございました。
できました。
たいへんたすかりました。

お礼日時:2001/10/26 10:39

事故レスです。


#1の方と#2で示した方法は違いますね。
    • good
    • 0

1.フォーム上にボタンを2個貼り付ける。


2.ボタンのプロパティを1つはEnable(表示)もう一つはDisable(非表示)に設定。
3.表示されているボタンがクリックされたら非表示にしているボタンのプロパティをEnableに変更する。

これでボタンが増殖した様に見えるはずです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q複数フォームを1ボタンクリックで終了させる方法

VB6.0
WindowsXP
(症状)
複数フォームを1クリックで終了できずに困っています。
理由は他のフォームに移ったときにボタンの位置やテキストの内容を残しておきたい為にunloadさせずに、
Me.Hideだけでフォームを移動しているためだと思います。

終了のときは、下記のコードを用いて、終了させています。
標準モジュールに
Public Sub sAllEnd()
Dim myObject As Object
For Each myObject In Forms
Unload myObject
Set myObject = Nothing
Next
End Sub
をおいて、

各フォームには
Private Sub Form_Unload(Cancel As Integer)
Dim myResult As Integer

myResult = MsgBox("終了します。" & vbCrLf & "よろしいですか?", vbOKCancel + vbQuestion, "終了確認")

If myResult = vbCancel Then
Cancel = True
End If
Call sAllEnd
End Sub


終了メッセージのOKボタンを開いたフォームの枚数分だけクリックしないと終了できない状態です。
これを1クリックで終了できるようにするためにはどうしたら良いでしょうか?

よろしくお願いします。

VB6.0
WindowsXP
(症状)
複数フォームを1クリックで終了できずに困っています。
理由は他のフォームに移ったときにボタンの位置やテキストの内容を残しておきたい為にunloadさせずに、
Me.Hideだけでフォームを移動しているためだと思います。

終了のときは、下記のコードを用いて、終了させています。
標準モジュールに
Public Sub sAllEnd()
Dim myObject As Object
For Each myObject In Forms
Unload myObject
Set myObject = Nothing
Next
End Sub
をおいて...続きを読む

Aベストアンサー

>このページにendは使わないほうがいいと書かれていたので、Endは避けておりました。
Private Sub Form_Unload(Cancel As Integer)

Dim myResult As Integer

myResult = MsgBox("終了します。" & vbCrLf & "よろしいですか?", vbOKCancel + vbQuestion, "終了確認")
If myResult = vbOK Then
Unload Form1
Else
Cancel = True
End If

End Sub

でしたらこのようにやればいいのではないかな。
Form1がメインウィンドウ

QエクセルVBAでユーザーフォームのコマンドボタンをクリックするたびに

社内アンケートを作っています。質問は80問あり、1問ごとにユーザーフォームが表示されます。ユーザーフォームには「次へ進む」のコマンドボタンと質問内容を表示させるテキストボックスがあり、1問目を答えて「次へ進む」をクリックすると2問目の質問が表示され、さらに「次へ進む」をクリックすると3問目が表示されるという風にしたいのですが、2問目以降の質問を表示させられません。うまく表示させるにはどういうコードにすればよいのでしょうか?

Aベストアンサー

回答形式が不明なのでオプションボタンを2つ配置しYes,Noの二択で答えるということにしました。参考までに。

使用コントロール
TextBox1
cmdSusumu
optYes
optNo


'コードここから
Dim Question(80) As String
Dim QNo As Long

Private Sub UserForm_Initialize()
Question(1) = "1ですか?"
Question(2) = "2ですか?"
Question(3) = "3ですか?"
'  :
Question(80) = "80ですか?"

QNo = 1
TextBox1.Text = Question(QNo)
End Sub


'次へ進むボタン
Private Sub cmdSusumu_Click()

If optYes Or optNo Then  '回答しないと進めない

If optYes Then
'yesを記録
optYes.Value = False
Else
'noを記録
optNo.Value = False
End If

If QNo < 80 Then  '次の問題の表示
QNo = QNo + 1
TextBox1.Text = ""
TextBox1.Text = Question(QNo)
End If

End If
End Sub

回答形式が不明なのでオプションボタンを2つ配置しYes,Noの二択で答えるということにしました。参考までに。

使用コントロール
TextBox1
cmdSusumu
optYes
optNo


'コードここから
Dim Question(80) As String
Dim QNo As Long

Private Sub UserForm_Initialize()
Question(1) = "1ですか?"
Question(2) = "2ですか?"
Question(3) = "3ですか?"
'  :
Question(80) = "80ですか?"

QNo = 1
TextBox1.Text = Question(QNo)
End Sub


'次へ進むボタン
Private Sub cmdSusumu_Cl...続きを読む

Qフォームボタンクリックでセル色表示

作業中中断により日付を変更したのかどのボタンまでクリックしたのかがわからなくなります。
A2セルの日付を変更したらB5セルが赤表示、ボタン1をクリックしたらC5セルが青表示、ボタン2をクリックしたらD5セルが緑表示、ボタン3をクリックしたらE5セルが黄表示等どこの作業まで実施したのかわかるようにしたいのですがVBAのコードがお解りになる方よろしくお願いします。

Aベストアンサー

こんにちは!

一例です。
コマンドボタンのオブジェクト名は実際のオブジェクト名にしてください。
シートモジュールで

Private Sub CommandButton1_Click()
Range("B5").Resize(, 4).Interior.Color = xlNone
Range("C5").Interior.Color = vbBlue
End Sub

Private Sub CommandButton2_Click()
Range("B5").Resize(, 4).Interior.Color = xlNone
Range("D5").Interior.Color = vbGreen
End Sub

Private Sub CommandButton3_Click()
Range("B5").Resize(, 4).Interior.Color = xlNone
Range("E5").Interior.Color = vbYellow
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
If IsDate(Target) Then
Range("B5").Resize(, 4).Interior.Color = xlNone
Range("B5").Interior.Color = vbRed
End If
End If
End Sub

ではどうでしょうか?

>どこの作業まで実施したのかわかるようにしたいのですが・・・
とありますので、
もしかしてすでに色がついているセルの色はそのまま残しておきたい場合は
各コマンドボタンのコード内の
>Range("B5").Resize(, 4).Interior.Color = xlNone
の1行を削除してください。m(_ _)m

こんにちは!

一例です。
コマンドボタンのオブジェクト名は実際のオブジェクト名にしてください。
シートモジュールで

Private Sub CommandButton1_Click()
Range("B5").Resize(, 4).Interior.Color = xlNone
Range("C5").Interior.Color = vbBlue
End Sub

Private Sub CommandButton2_Click()
Range("B5").Resize(, 4).Interior.Color = xlNone
Range("D5").Interior.Color = vbGreen
End Sub

Private Sub CommandButton3_Click()
Range("B5").Resize(, 4).Interior.Color = xlNone
...続きを読む

QForm1のボタンを押すとForm2が表示されて、Form1をクリックしたらBeep音

初歩的な質問ですみません。
タイトルそのまんま(しかも長い --;)なんですが。
よく見かけるもので、Form1でボタンを押すとForm1より小さいForm2が表示されて、そこでOKボタンを押さないとForm1に戻れなくて、その時にForm1の方をクリックするとBeep音が出る、っていうのがありますよね。あれはどうなっているんですか?Form2の表示まではできるんですけど、その先が分かりません。教えて下さい。お願いします。

Aベストアンサー

Form2.Show vbModal

でOKです。

Q電卓の数字0~9までのボタンをクリックした時

VB.NETでの質問です。
電卓の数字0~9までのボタンをクリックした時
ラベルに表示されません。
作成したコードは
Private Sub cmd_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _
Handles cmd1.Click, cmd2.Click, cmd3.Click, _
cmd4.Click,cmd5.Click, cmd6.Click, _
cmd.Click, cmd8.Click,cmd9.Click, _
cmd0.Click
Dim cmd As Button
Dim No As String
cmd = CType(sender, Button) 'イベント発生元のボタン情報を取得

Select Case cmd.Name 'ボタン名を参照
Case "cmd1" : No = "1"
Case "cmd2" : No = "2"
Case "cmd3" : No = "3"
Case "cmd4" : No = "4"
Case "cmd5" : No = "5"
Case "cmd6" : No = "6"
Case "cmd7" : No = "7"
Case "cmd8" : No = "8"
Case "cmd9" : No = "9"
Case "cmd0" : No = "0"

End Select

End Sub

エラーは
cmd.clickで指定されているメゾットで表示できません。
cmdは宣言されていません。
ということでした。

どうすれば、電卓の数字をクリックしたときに、
ラベルに表示できますか?
よろしければ添削お願いいたします。
助言でも結構ですので、申し訳ありませんが
よろしくお願いします。

VB.NETでの質問です。
電卓の数字0~9までのボタンをクリックした時
ラベルに表示されません。
作成したコードは
Private Sub cmd_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _
Handles cmd1.Click, cmd2.Click, cmd3.Click, _
cmd4.Click,cmd5.Click, cmd6.Click, _
cmd.Click, cmd8.Click,cmd9.Click, _
cmd0.Click
Dim cmd As Button ...続きを読む

Aベストアンサー

VB6では簡単にできていたコントロール配列ですね。

まず、エラーの原因は、cmd_Clickイベントに割りついている
Private Sub cmd_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _
Handles cmd1.Click, cmd2.Click, cmd3.Click, _
cmd4.Click,cmd5.Click, cmd6.Click, _
cmd.Click, cmd8.Click,cmd9.Click, _
cmd0.Click

の、"cmd.Click"が"cmd7.Click"なのでしょう。
あと、ボタンより数字を特定するのに、Tagなどを利用すると簡単
になります。各ボタンのTagプロパティに対応する数字をセット
しておけば、

Dim btn As Button = CType(sender, Button)
Dim No As String = CType(btn.Tag, String)
lblTest.Text = No

こんな感じになります。

VB6では簡単にできていたコントロール配列ですね。

まず、エラーの原因は、cmd_Clickイベントに割りついている
Private Sub cmd_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _
Handles cmd1.Click, cmd2.Click, cmd3.Click, _
cmd4.Click,cmd5.Click, cmd6.Click, _
cmd.Click, cmd8.Click,cmd9.Click, _
cmd0.Click

の、"cmd.Click"が"cmd7.Click"なのでしょう。
あと、ボタンより数字を特定するのに、Tagなどを利用すると簡単
になります。各ボタンのTagプロパティ...続きを読む


人気Q&Aランキング

おすすめ情報