• ベストアンサー

If文で≠の方法は?

Visual Basic 2003 を使っています。 If文で、 If (A = Me.TextBox1.Text) And ・・・ Then・・・ のように、「=」はできるのですが、「=でないとき」はどうすればいいのでしょうか? AはTextbox1と一致・Bはtextbox2と一致しない・cはtextbox3と一致の場合は○○、 AはTextbox1と一致・BはTextbox2と一致・CはTextbox3と一致しない場合は■■・・・のような条件式を作りたいんです。 調べてはみたのですが、見当たらなくて・・・。 分かる方がいらしたら、教えてください! (もし無理な場合もそう教えていただけると嬉しいです。他の方法を考えるか、諦めます。)

質問者が選んだベストアンサー

  • ベストアンサー
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.5

補足ですがIF NOT (A = Me.TextBox1.Text) THENもサポートされます。 今回の場合ですと<>がベターですね。 IF A <> Me.TextBox1.Text AND B <> Me.TextBox2.Text AND C = Me.TextBox3.Text THEN ○○ ELSE IF A = Me.TextBox1.Text AND B = Me.TextBox2.Text AND C <> Me.TextBox3.Text THEN ■■ END IF といった具合です。 ELSEIFが気に入らない場合は、 SELECT CASE TRUE CASE A <> Me.TextBox1.Text AND B <> Me.TextBox2.Text AND C = Me.TextBox3.Text ○○ END SELECT のように記述することもできます。 また文字列比較において、速度を要求するのであれば。 String.compare(A,Me.TextBox1.Text) = 0(等しい) String.compare(A,Me.TextBox1.Text) <> 0(等しくない) または A.CompareTo(Me.TextBox1.Text) = 0(等しい) A.CompareTo(Me.TextBox1.Text) <> 0(等しくない) 比較文を変更することで速度が向上します。

chihi6
質問者

お礼

確かに今回はIF NOTよりも<>がよさそうですね。 丁寧に説明をしてくださって、ありがとうございました! ElseIfでやろうとしていたので、ElseIfでやってみます。 文字列と数字と両方使うのですが、速度はいらないので、たぶんIFで平気だと思います。 でも、せっかく教えてくださったので覚えておきます^^

その他の回答 (4)

  • debukuro
  • ベストアンサー率19% (3635/18948)
回答No.4

BASICの不等号は <> です if a<>b then janp else sub こういう調子

chihi6
質問者

お礼

ありがとうございます。 そういう調子でやってみます!

noname#78947
noname#78947
回答No.3

≠→<> ≦→<= ≧→>= Visual Basicで不等号を使う場合は上記のようになります。 ちなみに、他には下記のような用法もあります。 IF Not A=B Then 上記の用法はA=BがNot、つまりA≠Bの場合という意味になります。<>を使う場合もNotを使う場合も動作は同じです。

chihi6
質問者

お礼

ありがとうございます。 3種類とも覚えておきます!><

  • qualheart
  • ベストアンサー率41% (1451/3486)
回答No.2

一致しないの記号は「<>」です。

chihi6
質問者

お礼

ありがとうございます。

  • korin_
  • ベストアンサー率69% (46/66)
回答No.1

こんにちは。 If (B <> Me.TextBox2.Text) Then が、一致しない場合の式です。

chihi6
質問者

お礼

簡単な式だったんですね・・・! 調べ方が悪かったようで、すみませんでした。 ありがとうございました!^^

関連するQ&A

  • IF文

    (A)IF 条件 THEN 単純実行文1 ELSE 単純実行文2 (B)IF 条件 THEN 実行処理1 ELSE 実行処理2 Aの文では単純実行分なのになぜ改行すると(B)の文みたいに実行処理になるのでしょうか? 実行処理と単純実行文の違いを教えてください

  • C#のif文について

    C# Express EditionC#を勉強中です。 if文を用いて単純な事を行いたいのですが、マニュアル通り書いているのですが出来ません教えて下さい。 Cが0のであり、Eも0の時にTextBox1.Textに1を書きたいのですができません。 if (C==0)&&(E==0) TextBox.Text="1"; と書いた場合、&&が無効とエラーで帰ってきます。 マニュアルには&&(且つ)||(or)で表記されていますが、ExpressEditionでは使用出来ないのでしょうか?又書き方間違ってますか? よろしくお願いします。

  • 長いIF文を短くしたい

    よろしくお願いします いつもgooのみなさんに大変お世話になっております マクロは2カ月ほど前から勉強しています お陰様で、私のマクロも日々進歩できています エクセルのバージョンは2013です 質問内容 長いIF文を短くしたい IF 条件1 and 条件2 and 条件3 and 条件4 and 条件5 Then   処理 End If このようにIF文が長いために、マクロ編集画面が見にくくなっています Select Case を使わずに短くする方法はないでしょうか?

  • if文の条件式の書き方について

    現在VC++2005でプログラムを作成しています。 そこであるテキストファイルをテキストボックスに表示してからその表示されている内容の1行目をif文を使って判断するというものを作っています。 そこで、質問なのですがif文の条件を作るときに文字列として条件を入れたい場合はどのようにしたら良いのでしょうか? 現在は7:00ならばというものなのですが、読み込んだ文字列に7:00以外のものが入っていてもそのまま判断されてしまうのできっと条件式のところが問題だと思うのですが。 下に作成中のコードを書きますので、良かったらご教授お願いします。 ********************************************************* String^ ss; ss=textBox3->Text; ss=textBox3->Lines[0]; textBox5->Text=ss; String^ time; time=textBox5->Text; if (char time='7:00'){ MessageBox::Show("7時"); } else { MessageBox::Show("ミス"); } **********************************************************

  • IF文での条件の書き方について(fortran)

    条件 (1)exp(-at)<x  (2)exp(-bt)<y と二つの条件があるとする. (a,b,x,yは定数とし,tは時間でdo文でまわすとする) 例えば,IF( (1) .AND. (2) )THENとすれば,「(1) かつ (2)」となり,つまり,「時間的に,(1)・(2)がどちらが先に条件を満たしたとしても良い」とういうことですよね. 今回,私が作ろうとしているプログラムは 「(1)が先に条件を満たした後に,(2)の条件を満たすなら」というIF文を作りたいのです.( (2)の条件が先に満たしてしまう場合は除きたいということです) こういう場合はどういった表記をすればよいのでしょうか. 下手な文章で読みにくいかもわかりませんが,アドバイスをお願いいたします.

  • if文について教えてください

     C++でプログラムを作っています。  b0~b3どれかが1の時という条件指定と、さらにその上でb0~b3どれも1でなく、かつどれも同じ値でないという条件指定はどのように記述すればよいのですか?  ちなみに私は次の様にしたのですが、ビルドすると「error C2181: else 文が if と一致しません。」となってしまいました。 if((b[0]=1)||(b[1]=1)||(b[2]=1)||(b[3]=1));{ c[1]=c[1]+1; } else(b[0]!=b[1]!=b[2]!=b[3]!=1){   c[2]=c[2]+1;          }  もう一つこちらでもダメでした。 if((b[0]=1)||(b[1]=1)||(b[2]=1)||(b[3]=1));{ c[1]=c[1]+1; } else(b[0]!=b[1]!=b[2]!=b[3]){   c[2]=c[2]+1;          }

  • If文について

    よろしくお願いします。 Excelのマクロで If文を使おうとしています。 ブックAのシート1に会員No.リストがあり、 ブックBに会員Noをシート番号にしたものがあります。 そこで、会員Noに等しいシートを見つけようと、下記のようにIf文を使いました。 しかし、等しいシート番号があるのに 一致した と出ません。 シートの最後まで進んで 不一致 が出ます。 どこが悪いのでしょうか。ご指導お願いします。 For I = 1 To ActiveWorkbook.Worksheets.Count 'ワークシートの数だけ繰り返す MsgBox 会員No & Worksheets(I).Name If 会員No = Worksheets(I).Name Then MsgBox "一致した" End If Next MsgBox "不一致" 質問の補足ですが、マクロはブックAにあります。 ブックAから会員Noを読み取り、ブックBをアクティブにしてから、If文に入っています。またIf文の前のMsgBox 会員No & Worksheets(I).Name で番号が一致する時があることも確認しています。

  • if文について

    Excel 2007 VBAを使用しています。 ↓のクリックイベントを実行するとif文のところで不具合があります。 商品シートのC列には、状況が保存されています。 該当した年月、"受取済み"、"注文中"以外の行データをリストさせます。 商品シートのJ列、W列には、該当した年月、"受取済み"、"注文中"以外の行データが存在するのですが、まったく検出してくれません。 対処方法を教えてくれませんか? ------------------------------------------- Option Explicit Private Sub CB1_Click() '変数を定義 Dim i As Long Dim maxRow As Long Dim inSheet As Worksheet Dim outSheet As Worksheet '入出力先のシートをオブジェクト変数へ格納 Set inSheet = Worksheets("商品") Set outSheet = Worksheets("結果") 'テキストボックスの内容を判定 If (Me.TextBox21.Value = "") Or (Not IsDate(Me.TextBox21.Value)) Then MsgBox "日付が入力されていません" Exit Sub End If '最終行番号を取得 maxRow = Me.Cells(Rows.Count, "A").End(xlUp).Row '商品シートの最終行番号で分岐処理 If maxRow > 3 Then '出力先を削除してヘッダーをコピー outSheet.Cells.Delete inSheet.Range("A3").EntireRow.Copy outSheet.Range("A1") Application.CutCopyMode = False Else '4行目以降にデータが入力されていなければメッセージで終了 MsgBox "該当データがありません" Exit Sub End If '4行目から最終行まで繰り返し For i = 4 To maxRow 'J列が日付であれば処理 If IsDate(inSheet.Cells(i, "J").Value) Then '--------機能しない箇所(開始) If Year(inSheet.Cells(i, "J").Value) <= Year(Me.TextBox21.Value) And _ Month(inSheet.Cells(i, "J").Value) <= Month(Me.TextBox21.Value) And _ CStr(inSheet.Cells(i, "W").Value) <> "受取済み" And CStr(inSheet.Cells(i, "W").Value) <> "注文中" Then '--------機能しない箇所(終了) inSheet.Rows(i).Copy outSheet.Rows(cnt + 2) End If End If Next i End Sub

  • if文の中のif文・・・について

    質問させていただきます。 if文の中のif文の記述の仕方について質問があります。 例えば if ( x > 0 ){ a = b+c; if ( a > 1) d = e+f; ・・・1 if ( a < 1) d = e-f; ・・・2 if ( a = 1 ) d = 1-g; ・・・3 } h = d + i; aが1より大きい場合は、1の処理を、aが1より小さい場合は2の処理を、aが1と同じであった場合、3の処理をして最終的に、h = d + i;の式の d に代入して h を求めたいと思っているのですが、うまくゆきません。 if文の中のif文の記述はどのようにすればよいのでしょうか? よろしければご教示よろしくお願いします。

  • エクセルのIF関数について

    エクセルの数式でIFを使って、下記のような複数の条件の時に、それぞれの計算結果を算出する式を作りましたが、単純に条件を並べただけで(IFとAND使用)、式が長くなってしまいます。これを短く出来る式の方法はありますでしょうか?(他の関数を使用する方法など)また、エクセルの関数の数式を応用編まで詳しく調べられるサイトをご存知でしたら教えてください。 (条件の例)R1への式入力 (1)A1がに"A"か"B"かを入力 (2)A1がAで、B2の値がC3以下の時、R1には8、C3より大きい場合は、B2-C3の値を表示 (3)A1がBで、B2の値がC3以下の時、R1には5、C3より大きい場合は、(B2-C3)/2の値を表示 といった条件を満たすものが作成したいです。 ちなみに私が作成した式は、 =IF(AND(A1=A,B2<=C3),8),IF(AND(A1=A,B2>C3),B2-C3,・・・・)って感じです。こんな方法しか無いでしょうか?