• ベストアンサー

いい方法ありませんか?

If i= 1 Then label1.text="1" i= 2 Else label1.text="2" i= 1 End If ※コマンドをクリックするだびに1 2を繰り返す

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

  • ベストアンサー
  • i-touch
  • ベストアンサー率40% (170/415)
回答No.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 '--- では?

kenta_tanaka
質問者

お礼

ご回答ありがとうございました。

その他の回答 (7)

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.7

#1です。 御礼を見て、何をなさりたいのかわからなくなりました。 別にそのままでいいんじゃない、とも思います。 結局、何が問題なんでしょう。もう少し内容を整理してもらえませんか。

kenta_tanaka
質問者

補足

もっといい方法がないかなと思いまして質問をさせていただきました。 ↓のは配列で用意したのと""(空白)を交互 (配列に空白を入れるのはPGの関係不可) に出したかったんです。 これは2つなんですが、3つ 4つ の処理を順番に繰り返す場合とか楽に出来たらいいなと思いまして・・・・。 ご回答ありがとうございました。

  • tak2003
  • ベストアンサー率32% (174/540)
回答No.6

i=(-1*(i=1)+1) label1.text=str(i) 論理演算でi=1のとき-1なので-1を掛けて+1になります。それに+1を足すので+2になります。 i=1以外は0なので+1になります。 こんなんでいいかな?

kenta_tanaka
質問者

補足

ご回答ありがとうございました。 ↓の補足と入れ違いになったみたいで・・・・。 どうもそんな関数はないみたいなんですが、やはりないんでしょうか? よければ上下の補足をごらんになってください。 PS 先日はありがとうございました。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.5

普通はこうでしょう。 If (Label1.Caption = "1") Then Label1.Caption = "2" Else Label1.Caption = "1" End If または Label1.Caption = IIf(Label1.Caption = "1", "2", "1")

kenta_tanaka
質問者

補足

すいません。 質問の仕方に不備があったようです。 これは仮のつもりだったんです・・・。(>_<) 実際は全く違う処理が入っています。 一応書きますと 処理1 label1.caption="" 処理2 label1.caption=a(i) i++ を繰り返したいのです。 また3つ以上(別のPGです)になることもあるので、いい方法がないかなと思ったんです。

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

他の方みたいに綺麗な方法ではないですけど、 このような方法もありますよ。 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)
回答No.3

私ならこんな感じでしょうか・・ '--- 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)
回答No.2

コード上で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)
回答No.1

VBのLabelの表示用プロパティはCaptionじゃなかったかな? こんな感じにすれば1行ですみます。 (label1.captionの初期値は"1"か"2"に設定しておくとして) label1.caption=str(3-val(label1.caption))

kenta_tanaka
質問者

お礼

すいません。 質問の仕方に不備があったようです。 これは仮のつもりだったんです・・・。(>_<) 実際は全く違う処理が入っています。 一応書きますと 処理1 label1.caption="" 処理2 label1.caption=a(i) i++ を繰り返したいのです。 また3つ以上(別のPGです)になることもあるので、いい方法がないかなと思ったんです。

関連するQ&A

専門家に質問してみよう