ページ 1 / 1
If~ について
Posted: 2007年7月10日(火) 20:07
by Susisu
コード: 全て選択
Sub MainWnd_CommandButton1_Click()
Dim hEdit1 As Long
Dim hEdit2 As Long
Dim Answer As String
hEdit1=GetDlgItem(hMainWnd, EditBox1)
hEdit2=GetDlgItem(hMainWnd, EditBox2)
If hEdit1="a" Then
Answer="x"
Else If hEdit1="b" Then
Answer="y"
Else
Answer="z"
End If
SetWindowText(hEdit2,Answer)
End Sub
このようにすると全てElse~の条件処理になり、zしか表示されません。
どなたか教えていただけませんか?
Else Ifじゃだめです
Posted: 2007年7月10日(火) 20:13
by Kaz
条件分岐に余分なスペースが入ってますよ
× Else If
○ ElseIf
直りません
Posted: 2007年7月10日(火) 20:30
by Susisu
直りません。
やはりzが表示されてしまいます。
あ、よくみたら
Posted: 2007年7月10日(火) 20:43
by Kaz
条件がおかしいです。
正しくはこうかな?
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
Sub MainWnd_CommandButton1_Click()
Dim hEdit1 As Long
Dim hEdit2 As Long
Dim Answer As String
Dim EditString As String
Dim dwLength As Long
hEdit1=GetDlgItem(hMainWnd, EditBox1)
hEdit2=GetDlgItem(hMainWnd, EditBox2)
dwLength = GetWindowTextLength(hEdit1)
GetWindowText(hEdit1, EditString, dwLength + 1)
If EditString="a" Then
Answer="x"
ElseIf EditString="b" Then
Answer="y"
Else
Answer="z"
End If
SetWindowText(hEdit2,Answer)
End Sub
Posted: 2007年7月10日(火) 20:56
by 雷電
コード: 全て選択
dwLength = GetWindowTextLength(hEdit1)
GetWindowText(hEdit1, EditString, dwLength + 1)
取得の部分って、Stringだけど領域確保はいらないんですか
もしいるならば、こうすべきです。
なるほど!
Posted: 2007年7月10日(火) 21:28
by Kaz
いつもString型でアクセス違反がでてて、なぜかな?
って思ってたんですがZeroStringを忘れてたんですね!
雷電さんありがとうございます!
ありがとうございます
Posted: 2007年7月11日(水) 20:40
by Susisu
ありがとうございます!
正常に動作するようになりました!