• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAの数値の判別方法について教えてください。)

VBAの数値の判別方法について

soaikatsの回答

  • ベストアンサー
  • soaikats
  • ベストアンサー率58% (14/24)
回答No.2

まずはVBAでのヘルプ参照方法から。 ・調べたい語句(今回は"mod")に  カーソルがある状態でF1キーを押す。 ちなみに、回答例はこんな感じでしょうか。 ・0以上1000以下 If ((数値>=0) And (数値<=1000)) Then  (処理) End If ・0.25の倍数 If (Cint(数値/0.25)<>(数値/0.25)) Then  (処理) End If

km10181107
質問者

お礼

お返事が遅れてしまいました。 アドバイスありがとうございます。 Cint関数は初めて知りました。 このような判別の仕方は考えつきませんでした。 大変参考になりました。 ありがとうございました。

関連するQ&A

  • 2008は閏年であることを判定する式を作成するにあたって

    2008年は閏年であるということを判定する式を 作成しなければならないのですが、 なかなか良いアイデアが浮かばず質問に至りました。 ※閏年とは次の条件を満たす年のことをいいます。 400の倍数である。または100の倍数ではなく、かつ4の倍数の年をいう。 この問題を関数OR,IF,MOD,ANDなどを利用して判定する式を作成しなければならないのですが、納得のいく解答ができませんでした。数学や情報処理の得意な方、是非チカラを貸してください。お願いします。

  • VBAである一定以上の数値を検索して、処理を行うようにしたいのですが…

    VBAである一定以上の数値を検索して、処理を行うようにしたいのですが… 初めまして。 業務で効率化を図るための簡易ソフトのようなものを作るため、VBAを勉強しています。 VBAである一定以上の数値をAシートのある範囲から検索して、ある一定以上の数値が1個以上であればテキストボックスにAシートのあるセルの言葉を表示させたいと考え、以下のようなものを作りましたが、「オブジェクト変数またはWithブロック変数が設定されていません」と出てしまいます。 どなたかご教授下さればとても助かります。 ちなみにExcel2007です。 Private Sub CommandButton1_Click() Dim Target1 As Variant Target1 = Worksheets("A").Range("D8:V8").Find(">=10") TextBox1.Text = "" Me.TextBox1.Font.Size = 14  If OptionButton1 = True Then If Target1 >= 1 Then Worksheets("A").Range("B33").Copy Me.TextBox1.Paste Application.CutCopyMode = False ElseIf Target1 = 0 Then Worksheets("A").Range("B34").Copy Me.TextBox1.Paste Application.CutCopyMode = False End If End If End Sub

  • vba で数値の比較

    現在、複数の変数同士の大小関係を比較して、 条件があっていれば○か×を特定のセルに出力する というマクロを作成しております。 "○"条件を満たした時、しっかりとそちら処理に流れるのですが、 何故か"×"の条件を満たしても、"×"の処理に入ってくれません。 そのままelseの方へ流れてしまいます。 数値の大小関係は何度も確認したのですが、間違ってはいません でした・・・ 自分の力では解決出来ませんでした(>_<)! どなたかお力添えをお願いします。 以下、問題の箇所です。 このif文より上の箇所では変数a(行座標)の設定と、 各変数への値の代入を行っています。 If lwma52(1) < ema21(1) < lwma13(1) _ And lwma13(2) < lwma13(1) _ And ema21(2) < ema21(1) _ And lwma52(2) < lwma52(1) _ And closes(2) < closes(1) < opens Then Cells(a, 25).Value = "○" ElseIf lwma52(1) > ema21(1) > lwma13(1) _ And lwma13(2) > lwma13(1) _ And ema21(2) > ema21(1) _ And lwma52(2) > lwma52(1) _ And closes(2) > closes(1) Then Cells(a, 25).Value = "×" Else Cells(a, 25).Value = "" End If よろしくお願い致します。

  • VBAで数値入力について

    Excel VBAで、UserFormにTextBoxを配置しています。 TextBoxに入力された数値は、半角数値で正数で小数点以下の桁数は1までと制限したいです。 現在は下記のプログラムにしているのですが、「1.2.3」と入力されるとエラーが表示されずに通ってしまいます。。。 どのようにしたらよいのでしょうか。 For i = To Len(TextBox1.Text) If Not Mid(TextBox1.Text, i, 1) Like "[0-9 And .]" Then Message"半角数値ではありません" Exit Sub End If Next i If Val(Text1.Text) = 0 Or TextBox1.Text = "" Then Message"数値を入力してください" Exit Sub End If

  • substrで数値を抽出してのマッチングについて

    $aという変数に100~9999のうち、任意の数値が1つ入るとします。 この$aの頭の3桁が100かそれ以下でしたら if(substr($a,0,3) <= 100){各処理;} で可能なのですが、例えば101~120、120~500、500~700、 などのように範囲でマッチングを行いたいのですが どうもうまくいきません。 if(substr($a,0,3) =~ /[101-120]/)ではないですよね…。 この場合どのように判定させれば宜しいのでしょうか? お詳しい方どうぞご教授お願い致します。

    • ベストアンサー
    • CGI
  • VBAの計算について教えてください。

    お世話になります。 VBA超初心者です。 教えて頂けると助かります。 ユーザーフォームにテキストボックス1、2、3を作成し、それらを計算させて テキストボックス4に表示をさせたいと考えています。 テキストボックスに入力するパターンは以下の2種類です。 (1)すべてのテキストボックスに数値が入る (2)テキストボックス3のみに数値が入る 行いたい計算は、“(テキストボックス1 × テキストボックス2) + テキストボックス3”です。 曲りなりに作成してみましたが、テキストボックス3の数値を変えた時や削除した時などに、 テキストボックス4に入っている数値が残っていたりと、思うようにできません。 作成したものを掲載しておきます。 何卒よろしくお願いします。 テキストボックス1を変更したとき 1、3に数値が入っていれば、以下の計算を。 それ以外は“0”をテキストボックス4へ Private Sub TextBox1_Change() If TextBox1.Value = True And TextBox3.Value = True Then TextBox4 = Val(TextBox1.Text) * Val(TextBox2.Text) + Val(TextBox3.Text) Else TextBox4 = 0 End If End Sub テキストボックス2を変更したとき 2、3に数値が入っていれば、以下の計算を。 それ以外は“0”をテキストボックス4へ Private Sub TextBox2_Change() If TextBox2.Value = True And TextBox3.Value = True Then TextBox4 = Val(TextBox1.Text) * Val(TextBox2.Text) + Val(TextBox3.Text) Else TextBox4 = 0 End If End Sub テキストボックス3を変更したとき 1、2、3に数値が入っていれば、以下の計算を。 1か2に数値がなく、3に数値があれば、3の数値をテキストボックス4へ。 それ以外は“0”をテキストボックス4へ Private Sub TextBox3_Change() If TextBox1.Value = True And TextBox2.Value = True And TextBox3.Value = True Then TextBox4 = Val(TextBox1.Text) * Val(TextBox2.Text) + Val(TextBox3.Text) ElseIf TextBox1.Value = False or TextBox2.Value = False And TextBox3.Value = True Then TextBox4 = Val(TextBox3.Text) Else texbox24 = 0 End If End SubEnd Sub

  • VBAについて質問です

    VBAについて質問です EXCEL2002、SP-2 を使用しています 以下のプログラムで、「0で除算しました」というエラーが出てしまいます strwarareru = 3.5 dblwaru = 0.0005 if (cdbl(strwarareru) mod dblwaru <> 0) then msgbox("割り切れない") else msgbox("割り切れる") end if dblwaru は、小数点以下が何桁になるかわからないので「* 1000」等もできません 「cdbl(strwarareru) mod dblwaru <> cdbl(0)」とやっても同じエラーが出てしまいます すいませんが、エラーにならずにきちんと処理できる方法をお願いします

  • VBAで入力数値について

    Excel VBAでTextBoxに入力された数値が整数か小数か判定し、 小数の場合は、下記のようにしたいのですが、どのようにしたらよいのでしょうか。 TextBoxに入力された数値が、 (1)整数の場合・・・A=TextBox1.Value (2)小数点第一位の場合(1.5など)・・・A=TextBox1.Value*10 (3)小数点第二位の場合(1.55など)・・・A=TextBox1.Value*100 どなたかご教授願います。

  • EXCEL VBAでセルの値が数値のときに2を掛ける方法について

    すいませんEXCEL VBAで教えていただきたいことがあります。 A1:H3000に数値及び文字列が入っている。 この範囲で値が数値のときは当該セルの値に*2の処理を行う (文字列の場合はそのまま) Dim i as Variant For Each i in Range("A1:H3000") IF ~ Next i というような流れでしょうか。 IFの後がテキスト本を見てもよくわかりませんでした。 よろしくお願いします。

  • WSHスクリプトから動かしたEXCEL・VBAマクロでWSHスクリプトを停止する方法

    WSHスクリプトからEXCELファイルのVBAマクロを呼び出し実行させます。 このマクロ内ではif関数で設定している条件の真偽を判定しています。偽の場合、マクロは終了しEXCELファイルは一旦閉じられます。そして一定時間がたったら、WSHスクリプトのループ処理で再び同じマクロが開かれif関数で条件判定を行います。 もし、真の場合、マクロの設定処理の実行・終了とともにWSHのループ処理も終了させたいのですが、VBAマクロからそのマクロを実行させているWSHスクリプトを停止させることは可能でしょうか。