プログラミング

プログラミングに関するフォーラムです。VBAは除きます。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10全般 : その他)
VBScript教えてください。剰余演算
投稿日時: 20/02/20 10:32:28
投稿者: gorby

VBScriptに関する質問です。
WinActorというRPAツールでVBScriptでコードを書いて実行したら、
下記赤字のコードで構文エラーになりました。
 
やりたいことは、変数aaaを100000000000で割って余りが0なら、aaaを0.9で割り、余りが0でないなら、
aaaを0.85で割り、aaaを割った結果を変数bbbに取得することです。
 
プログラミング初心者なのでよろしくお願いします。
 
--<start of code>-
 Select Case Len(CStr(aaaaaa))
     Case 6
         Select Case mod(aaa/100000000000)
Case 0
               bbb = (aaa * 0.9)
            Case else
               bbb = (aaa * 0.85)
          End Select
     Case Else
               bbb = (aaa * 0.85)
 End Select
--<end of code>-

回答
投稿日時: 20/02/20 23:01:33
投稿者: RK

modは演算子なので、書き方は
A mod B です。
x = 7 mod 2
の時に x は 1となります。
  
ただ、エラーで止まっている直接の原因は10の12乗?によるオーバーフローでしょうから
長整数型相当に収まるように、単位を上げる(バイトからメガバイトとか)か
約分して計算する必要があります。
  
コードを見ただけでは何をやりたいのかよく分かりませんが、
(aaaを0.9で割りとありますが、貴方のコードでは掛けてますけど割るんですよね? )
日本語で書かれている部分をコードにすると以下のようになります。
 

  Dim aaa, intA, x, bbb 
 
  x = aaa Mod intA
  Select Case x
    Case 0
      bbb = (aaa / 0.9)
    Case Else
      bbb = (aaa / 0.85)
  End Select

投稿日時: 20/02/20 23:06:31
投稿者: gorby

RK さんの引用:
modは演算子なので、書き方は
A mod B です。
x = 7 mod 2
の時に x は 1となります。
  
ただ、エラーで止まっている直接の原因は10の12乗?によるオーバーフローでしょうから
長整数型相当に収まるように、単位を上げる(バイトからメガバイトとか)か
約分して計算する必要があります。
  
コードを見ただけでは何をやりたいのかよく分かりませんが、
(aaaを0.9で割りとありますが、貴方のコードでは掛けてますけど割るんですよね? )
日本語で書かれている部分をコードにすると以下のようになります。
 
  Dim aaa, intA, x, bbb 
 
  x = aaa Mod intA
  Select Case x
    Case 0
      bbb = (aaa / 0.9)
    Case Else
      bbb = (aaa / 0.85)
  End Select

 
>貴方のコードでは掛けてます
 
すみません、コードのとおり、掛けるが正解でした。回答ありがとうございます。

トピックに返信