- ベストアンサー
いい方法ありませんか?
If i= 1 Then label1.text="1" i= 2 Else label1.text="2" i= 1 End If ※コマンドをクリックするだびに1 2を繰り返す
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
Public i As Long Public a(255) as String '--- Private Sub Form_Load() i = 1 a(1) = "abc" a(2) = "cde" a(3) = "efg" a(4) = "ghi" End Sub '--- Private Sub Command1_Click() Select Case Label1.Caption Case "" Label1.Caption = a(i) i = i + 1 Case Else Label1.Caption = "" End Select End Sub '--- では?
その他の回答 (7)
- MovingWalk
- ベストアンサー率43% (2233/5098)
#1です。 御礼を見て、何をなさりたいのかわからなくなりました。 別にそのままでいいんじゃない、とも思います。 結局、何が問題なんでしょう。もう少し内容を整理してもらえませんか。
補足
もっといい方法がないかなと思いまして質問をさせていただきました。 ↓のは配列で用意したのと""(空白)を交互 (配列に空白を入れるのはPGの関係不可) に出したかったんです。 これは2つなんですが、3つ 4つ の処理を順番に繰り返す場合とか楽に出来たらいいなと思いまして・・・・。 ご回答ありがとうございました。
- tak2003
- ベストアンサー率32% (174/540)
i=(-1*(i=1)+1) label1.text=str(i) 論理演算でi=1のとき-1なので-1を掛けて+1になります。それに+1を足すので+2になります。 i=1以外は0なので+1になります。 こんなんでいいかな?
補足
ご回答ありがとうございました。 ↓の補足と入れ違いになったみたいで・・・・。 どうもそんな関数はないみたいなんですが、やはりないんでしょうか? よければ上下の補足をごらんになってください。 PS 先日はありがとうございました。
- todo36
- ベストアンサー率58% (728/1234)
普通はこうでしょう。 If (Label1.Caption = "1") Then Label1.Caption = "2" Else Label1.Caption = "1" End If または Label1.Caption = IIf(Label1.Caption = "1", "2", "1")
補足
すいません。 質問の仕方に不備があったようです。 これは仮のつもりだったんです・・・。(>_<) 実際は全く違う処理が入っています。 一応書きますと 処理1 label1.caption="" 処理2 label1.caption=a(i) i++ を繰り返したいのです。 また3つ以上(別のPGです)になることもあるので、いい方法がないかなと思ったんです。
- BlueRay
- ベストアンサー率45% (204/453)
他の方みたいに綺麗な方法ではないですけど、 このような方法もありますよ。 True = -1 False = 0 以上の様になっているので、True/Falseを利用して Private i As Boolean Private Sub Command1_Click() i = Not i Label1.Caption = 2 + i End Sub と言うのは如何でしょうか。
- i-touch
- ベストアンサー率40% (170/415)
私ならこんな感じでしょうか・・ '--- Select Case Label1.Caption Case "1" Label1.Caption = "2" Case "2" Label1.Caption = "1" Case else Label1.Caption = "1" End Select '--- 字下げは便宜上全角空白なので消してください! 変数だとGlobalやPublicでないと初期化されることが あります。 VB.Netだと、「.Caption」でなく「.Text」ですね。 では!
- imogasi
- ベストアンサー率27% (4737/17069)
コード上でIF文を使わないと言うだけですが VBAでコマンドボタンでテスト済み。 Private Sub CommandButton1_Click() Static i x = 1.5 + 0.5 * (-1) ^ (i - 1) i = i + 1 CommandButton1.Caption = x End Sub でボタンをクリックするごとに1,2を表示 します。iはLONGにしないとならないかも。
- MovingWalk
- ベストアンサー率43% (2233/5098)
VBのLabelの表示用プロパティはCaptionじゃなかったかな? こんな感じにすれば1行ですみます。 (label1.captionの初期値は"1"か"2"に設定しておくとして) label1.caption=str(3-val(label1.caption))
お礼
すいません。 質問の仕方に不備があったようです。 これは仮のつもりだったんです・・・。(>_<) 実際は全く違う処理が入っています。 一応書きますと 処理1 label1.caption="" 処理2 label1.caption=a(i) i++ を繰り返したいのです。 また3つ以上(別のPGです)になることもあるので、いい方法がないかなと思ったんです。
お礼
ご回答ありがとうございました。