dポイントプレゼントキャンペーン実施中!

visual basic6.0を使ってプログラミングの練習をしています。
入力した4つの整数を
以下の構文だと「定数式が必要です」とエラーがでてしまいます。


Option Explicit
Dim a As Variant
Dim b As Variant
Dim c As Variant
Dim d As Variant


Private Sub Command1_Click()

'テキストに記入されたデータを代入

text1.Text = a
text2.Text = b
text3.Text = c
text4.Text = d

'4つの整数を1つの配列とする
Dim F(a, b, c, d) As Variant


If IsvbInteger(F) Then 'もしa,b,c,dいずれも有効な整数だったとき



Call cbs.BubbleSort(F, UBound(F) + 1, True) '配列Fをバブルソート

string1 = ""

For j = 0 To UBound(F)
stringx = stringx & F(j) & ","
Next j

Label1.Caption = stringx 'ラベルテキストにカスケード


ElseIf vbArray(a, b, c, d) Then 'もし数字が重複していたとき

msg = "整数が重複しています"
btn = vbOKOnly
Title = "警告"

ElseIf F(a, b, c, d) = 0 Then '配列のうちどれかひとつでも0があったら

msg = "0は無効です"
btn = vbOKOnly
Title = "警告"

ElseIf isvbnull(a, b, c, d) Then '4つのうちどれかが空欄だったとき

msg = "無効の値です"
btn = vbOKOnly
Title = "警告"


Else '整数じゃなかったとき

msg = "整数を入力してください"
btn = vbOKOnly
Title = "警告"

End If '以上
End Sub

なにかつっこむところがあったら教えて下さい。

「visual basicについて」の質問画像

A 回答 (4件)

4つのテキストボックスに入力された数値を並べ替えようと


しているのであれば、配列の使用方法が間違えています。

Dim F(4) As Variant

F(1) = text1.Text
F(2) = text2.Text
F(3) = text3.Text
F(4) = text4.Text

...の様にする必要が有ります。
    • good
    • 0

Visual Basic の文法が判らないようなので、そこから学習する必要があります。



・a,b,c,d はどこで入力されているのでしょうか?


>'テキストに記入されたデータを代入
>text1.Text = a
>text2.Text = b
>text3.Text = c
>text4.Text = d

もし、この部分なら逆にする必要が有ります。
a = text1.Text
b = text2.Text
c = text3.Text
d = text4.Text

ただし、テキストボックスのTextプロパティは文字列型なので
a,b,c,d のそれぞれのデータ型をVarType関数で求めても全て文字列形になります。


もし、a,b,c,d に入力された文字列が整数と認識できるかをチェックするには
(1) IsNumeric関数で数字かどうか判定して
(2) 数値が整数の範囲になっているか判定して
(3) 実数でなく整数であることを確認する
という手順が必要です。
つまり
If IsNumeric(a) Then
__If (-32768<=Val(a)) And (Val(a)<=32767) Then
____If Val(a)=Int(Val(a)) Then
______Print "整数文字列です"
____Else
______Print "実数文字列です"
____End If
__Else
____Print "範囲外の実数文字列です"
__End If
Else
__Print "数字以外の文字列です"
End If

インデントを__で表現してます。
    • good
    • 0

> 入力したテキストを整数型かどうか判別させたかったのですが、うまくいかないようです


IsvbInteger のこと?そんな名前の関数は無いですよ?
もともと配列の各要素を判別するような関数は無いので
自分で作ることになります。
    • good
    • 0

>'4つの整数を1つの配列とする


>Dim F(a, b, c, d) As Variant
ただの文法エラーですね。
このような書き方はできません。
1つ1つ配列の各要素に入れるように
してください。

Variant は特殊で使い方が難しいです。
思わぬところでエラーにならないよう、
初心者は「使わない」のが懸命です。

文字列なら String 整数型なら Integer
数値と文字の間の変換は意図的にキャスト
することをお勧めします。

この回答への補足

入力したテキストを整数型かどうか判別させたかったのですが、うまくいかないようです

補足日時:2011/10/17 17:05
    • good
    • 0
この回答へのお礼

as variantは初心者は使わない、承知しました
もうちょっと例題をやってから挑もうと思います

お礼日時:2011/10/17 16:57

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