一回も披露したことのない豆知識

If i= 1 Then
label1.text="1"
i= 2
Else
label1.text="2"
i= 1
End If

※コマンドをクリックするだびに1 2を繰り返す

A 回答 (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
'---
では?
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/09/30 00:38

#1です。


御礼を見て、何をなさりたいのかわからなくなりました。
別にそのままでいいんじゃない、とも思います。

結局、何が問題なんでしょう。もう少し内容を整理してもらえませんか。

この回答への補足

もっといい方法がないかなと思いまして質問をさせていただきました。


↓のは配列で用意したのと""(空白)を交互
(配列に空白を入れるのはPGの関係不可)
に出したかったんです。

これは2つなんですが、3つ 4つ の処理を順番に繰り返す場合とか楽に出来たらいいなと思いまして・・・・。


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

補足日時:2003/09/26 01:46
    • good
    • 0

i=(-1*(i=1)+1)


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

こんなんでいいかな?

この回答への補足

ご回答ありがとうございました。
↓の補足と入れ違いになったみたいで・・・・。

どうもそんな関数はないみたいなんですが、やはりないんでしょうか?

よければ上下の補足をごらんになってください。

PS
先日はありがとうございました。

補足日時:2003/09/26 01:53
    • good
    • 0

普通はこうでしょう。



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です)になることもあるので、いい方法がないかなと思ったんです。

補足日時:2003/09/25 23:48
    • good
    • 0

他の方みたいに綺麗な方法ではないですけど、


このような方法もありますよ。

True = -1
False = 0
以上の様になっているので、True/Falseを利用して

Private i As Boolean

Private Sub Command1_Click()
i = Not i
Label1.Caption = 2 + i
End Sub

と言うのは如何でしょうか。
    • good
    • 0

私ならこんな感じでしょうか・・


'---
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」ですね。
では!
    • good
    • 0

コード上で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にしないとならないかも。
    • good
    • 0

VBのLabelの表示用プロパティはCaptionじゃなかったかな?


こんな感じにすれば1行ですみます。
(label1.captionの初期値は"1"か"2"に設定しておくとして)

label1.caption=str(3-val(label1.caption))
    • good
    • 0
この回答へのお礼

すいません。
質問の仕方に不備があったようです。

これは仮のつもりだったんです・・・。(>_<)
実際は全く違う処理が入っています。
一応書きますと


処理1
label1.caption=""


処理2
label1.caption=a(i)
i++

を繰り返したいのです。

また3つ以上(別のPGです)になることもあるので、いい方法がないかなと思ったんです。

お礼日時:2003/09/25 23:47

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