■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#8292-0if文についてky2000-05-26(金) 16:37
     #8293-0RE#8292:if文についてANGEL2000-05-26(金) 16:55
     #8294-0RE#8292:if文について匿名82942000-05-26(金) 17:02
     #8304-0RE#8294:if文についてky2000-05-26(金) 22:35
     #8305-0RE#8304:if文についてだち公2000-05-26(金) 22:53
     #8307-0RE#8304:if文についてKata2000-05-26(金) 23:56
     #8314-0RE#8307:if文についてky2000-05-27(土) 11:28
     #8317-0RE#8304:if文についてレベル92000-05-27(土) 15:58
#8292-0
if文について
初めて投稿します。
呆れるかもしれませんが、if文の使い方について教えて欲しいです。
バージョンは6.0です。初めて作るプログラムとして、郵便番号の検索辞書を作りたいと思っています。
(自分の住んでいる市限定なので、番号の下4桁だけ出力するようにする)
text1に町の名前を入力すると、text2にその町の郵便番号が出力されるようにしたいのです。
if text1.text ○○ then (○○は町の名前)
text2.text = 8521 
のような入力では、エラーが出ました。

そこで、正当なコマンドの入力の仕方を教えて下さい。
また、番号の下4桁で例えば0085と入力して改行すると0が消されて85になってしまいます。
0を残しておくにはどうすればよいでしょうか。

初めてにもかかわらず長くなってすみません。よろしくお願いしますします。
#8293-0
RE#8292:if文について
> text1に町の名前を入力すると、text2にその町の郵便番号が出力されるようにしたいのです。
> if text1.text ○○ then (○○は町の名前)
If Text1.Text = "○○町" Then  です。 
=が抜けているのか、""で括られていないのかが原因だと思います。(文字型は""で括る必要があります)
町は一つではないですよね?
If文で判断することが出来るようになったら次はSelect Case に挑戦してみては?

> また、番号の下4桁で例えば0085と入力して改行すると0が消されて85になってしまいます。
普通はならないと思うのですが・・・。
テキストボックスのDataFormatプロパティに何か入っていませんか?
#8294-0
RE#8292:if文について
> 初めて投稿します。
> if text1.text ○○ then (○○は町の名前)
> text2.text = 8521 
> のような入力では、エラーが出ました。
どのようなエラーが出たのかわかりませんが、上記を見る限り条件文のところに"="が無い
ため、End Ifが無いため、ではないでしょうか。
ただこの場合、実行もできないはずなので別の原因かも。
的外れでしたら、すみません。

> また、番号の下4桁で例えば0085と入力して改行すると0が消されて85になってしまいます。
> 0を残しておくにはどうすればよいでしょうか。
数字の部分を""で囲い文字列にしてみては?
#8304-0
RE#8294:if文について
8293,8294の方、素早いレス有り難うございます。
指摘された通り、町の名前と0085の数字を””で囲うとエラーは出なくなりました。感謝です。

申し訳ありませんが、また困りました。
今、以下の状態になっています。
前にtext2に出力したいと書きましたが、Label3に出力することにしました。(1,2は説明文)

Private sub Command1 Click()
If text1.text = "A町" Then Label3.Caption = "0085"
If text1.text = "B町" Then Label3.Caption = "0022"
End if

これで試しに実行しtext1にA町と入力してCommand1のボタンを押すと
「コンパイルエラー End ifに対するIfブロックがありません」と出てきました。

ヘルプには
「End If ステートメントには、対応する If ステートメントが必要です。
エラーの原因と対処方法を次に示します。If 節が記述されていないか、
End If が単独で使われています。
If...End If 構造内にある他の制御構造が正しく対応しているかどうかを確認します。
またブロック形式の If の形式が正しいかどうかも確認します。」
と書いてありますが、意味が分かりません。

何かが足りないと思うのですが、何を書けばいいのかで行き詰まってしまいました。
本当にすみません、またよろしくお願いします。
#8305-0
RE#8304:if文について
> Private sub Command1 Click()
> If text1.text = "A町" Then Label3.Caption = "0085"
> If text1.text = "B町" Then Label3.Caption = "0022"
> End if
> 
> これで試しに実行しtext1にA町と入力してCommand1のボタンを押すと
> 「コンパイルエラー End ifに対するIfブロックがありません」と出てきました。

構文が間違ってます。

If text1.text = "A町" Then
    Label3.Caption = "0085"
ElseIf text1.text = "B町" Then
    Label3.Caption = "0022"
End If

としてみてください。

ちなみに
If text1.text = "A町" Then
    Label3.Caption = "0085"
End If

If text1.text = "B町" Then
    Label3.Caption = "0022"
End If

とした場合はちょっと意味が異なります。(やってることは同じですが。
Ifのヘルプを見たら分かると思います。
#8307-0
RE#8304:if文について
> 「コンパイルエラー End ifに対するIfブロックがありません」と出てきました。

If文が
> If text1.text = "A町" Then Label3.Caption = "0085"
で完結しているためです。
言い換えればこの書き方の場合は Ifブロックにならないのです。

もっとも、この書き方は N88Basicの頃の記述法で一般的ではないとも思いますが。
(但し、可読性を考慮するとブロック化しない方が良いと思える場合もあります。)

なお、Ifブロックの記述法は だち公 さんの回答を参照。

私見込みですが、ここでは敢えて「Thenで一旦改行」と申しておきましょう。

それと・・・もう少しヘルプをご覧下さいませ。
コンパイルエラー程度で掲示板へ質問を投稿されるのは些か早計かと思います。
#8314-0
RE#8307:if文について
<それと・・・もう少しヘルプをご覧下さいませ。
<コンパイルエラー程度で掲示板へ質問を投稿されるのは些か早計かと思います。

だち公さん、Kataさん、レスとご叱責有り難うございます。
もっとヘルプを読んだほうが自分の為になると痛感しました。

何分はじめたばかり人の為の掲示板なのでどんな些細な事でも答えてくれると思って投稿したのです。
これからは自分でもっと勉強しようと思います。

勉強していて分からないことがあったらまたここに書くので、よろしくお願いします。
#8317-0
RE#8304:if文について
ゴミレスです。
> Private sub Command1 Click()
> If text1.text = "A町" Then Label3.Caption = "0085"
> If text1.text = "B町" Then Label3.Caption = "0022"
> End if
#このIf文でのエラーの原因と解決方法は他の方の回答で解った
#と思います。
俺的には、Ifを使うより、Select Case を使った方が、もし、
「条件に"C町"が追加された」場合の対処が柔軟に行われると
思います。

Select Case を使うとこんな感じになりましょうか・・・

Select Case Text1.Text 
    Case "A町"
        Label3.Caption = "0085"
    Case "B町" 
        Label3.Caption = "0022"
    Case Else
        MsgBox "どれも当てはまらない"
End Select

どうです?
このページと関連する記事:
#10440-0条件式について2000-08-09(水) 15:53
#30141-0keyDownの使い方が・・・??2000-09-18(月) 16:41
#8428-0ファイル処理2000-05-31(水) 22:08
#5218-0IF文について2000-01-22(土) 21:16
#1606-0テキストBoxの文字数(桁数)の取得方法1999-09-16(木) 02:03
#3497-0実行時エラー500031999-11-01(月) 10:07
#65-2if文の書き方を教えて下さい2003-11-06(木) 21:35
#909-0同じCommandボタンを繰り返し使う方法1999-08-19(木) 16:56
#29357-0郵便番号から住所の取得2002-06-12(水) 14:14
#11714-0テキストの途中にテキストを代入したいのです。2000-09-26(火) 19:19
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)