ここから本文です

修飾子が不正ですとエラーがでてしまう。

bea********さん

2016/11/2802:09:28

修飾子が不正ですとエラーがでてしまう。

VBA超超超初心者です…
「textboxへ入力した値が正の偶数or正の奇数or 0 or 負の数」
か判別できるようにしたいのですが、私が考えたやつでは
「修飾子が不正です」とエラーがでてしまいます。
正すためにどうかお知恵をお貸しください。

Dim TextBox As Integer
TextBox=n

If n > 0 Then
If TextBox.Value = 0 Then
Label2.Caption = "0です。”
ElseIf TextBox.Value Mod 2 = 0 Then
Label2.Caption = "正の偶数です"
Else
Label2.Caption = "正の奇数です"
If n < 0 Then

Label2.Caption ="負の数です"
End Sub


End Sub


以下、追加質問
*最初にTextBox=nと設定してあるが、この順番は正しいのでしょうか…
*最初にTextBox=nと設定してあるのに、TextBox.Valueの書き方でいいのでしょうか?n.Value でできますか?
*Captionを使うときと緑の「’」マークでコメントを表示するときの違い
*Modを使わずに偶数か奇数か判断する方法はありますか?

閲覧数:
7,620
回答数:
3
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2016/11/2809:52:54

TextBox・Labelがユーザーフォーム(以下フォーム)に存在し、そこの入力値の妥当性をチェックしているプログラム
という前提で回答します。

1)
*最初にTextBox=nと設定してあるが、この順番は正しいのでしょうか…
「TextBox」は、フォーム上のコントロールですよね?
入力した内容を、変数の値で上書きしているのですが、意図した操作ですか?

>Dim TextBox As Integer
フォーム上で定義済のコントロール。プロシジャ内で再び定義する必要はないです。

2)
*最初にTextBox=nと設定してあるのに、TextBox.Valueの書き方でいいのでしょうか?n.Value でできますか?
TextBoxt内の値は、TextBox.Valueで値を参照できます。
「n」というのが変数のつもりなら、n.Value はエラーになります。
.Valueを付けるのは、セル範囲やコントロールなどのオブジェクトの値を操作するためのプロパティ。
変数には不要。

3)
*Captionを使うときと緑の「’」マークでコメントを表示するときの違い
Captionは、ラベルコントロールのプロパティ。
「’」マークは、プログラムの記述につかう説明書き。
全くことなります。

4)
*Modを使わずに偶数か奇数か判断する方法はありますか?
一番簡単で自由度の高い方法が解っているのなら、複雑な方法を探す必要はないのでは?

以下、お示しのプログラムを適当な解釈の元で書き換えたものです。

Dim m As Long, n As Long
With TextBox
If Not IsNumeric(.Value) Then
Label2.Caption = "数値が入力されていません"
Else
m = CLng(.Value)
n = m Mod 2
Select Case m
Case Is = 0
Label2.Caption = "0です。"
Case Is > 0
If n = 0 Then
Label2.Caption = "正の偶数です"
Else
Label2.Caption = "正の奇数です"
End If
Case Else
Label2.Caption = "負の数です"
End Select
End If
End With

質問した人からのコメント

2016/12/4 17:14:22

ありがとうございました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

sap********さん

2016/11/2813:00:06

・If に対応する End If が無い。
・End Sub が2つ有るのはおかしい。

nag********さん

2016/11/2806:51:59

TextBoxがユーザーフォームに張り付けられているのだとしたら、

Dim TextBox As Integer
とする必要はありません

TextBox.Text = n
として下さい。

「オブジェクト」「プロパティ」という用語をまず理解して下さい。
それを理解していない人に「なぜn.Valueとしてはダメなのか」を説明することは難しいです。

追加質問についても、私にはあなたが理解できるように説明できる自信がありません。

下記のサイトを第一章から「理解しながら」読み進めて下さい。
http://excelvba.pc-users.net/

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる