現在設定ファイルに定めた数値(string型)と処理で使用した①Excelファイルのサイズを比較して、処理で使用したExcelファイルが設定値ファイル以上の数値なら、合格というような②判定処理を組んでいます。
ですが、数回に1回、Excelファイルサイズが設定ファイルに定めた数値よりも小さいサイズなのに合格(Trueへ進む)になってしまいます。
①Excelファイルサイズの取得方法:flieLenで整数を取得(String型)
②判定条件:Excelファイルのサイズ(変数)>=設定ファイルに定めた数値(変数)
これはなぜなのでしょうか、何かいい方法はないでしょうか、
Yoichi
(Yoichi)
2
こんにちは
文字列型の比較は文字コードベースの比較になりますので、見た目の数値の比較とは異なります。
数値に変換して比較してみてください。
使用する型にもよりますが、例えば
CDbl(変数A) > CDbl(変数B)
のようにすると良いかと思います。
(実際は整数型の方が良いかもですが)
ご回答ありがとうございます。
良くわかっていないので追加質問させてください。
Blockquote
cdb1は何型でしょうか。実際整数とはどういう事でしょうか
Yoichi
(Yoichi)
4
cdb1は何型でしょうか
CDblは引数の文字列をDouble型の数値(倍精度浮動小数点型)に変換するものです。
実際整数とはどういう事でしょうか
まず「flieLenで整数を取得」とは以下のFileLenメソッドでしょうか?
そうであれば、このメソッドはLong型を返しますので、文字列に変換することなく
Long型で扱うほうが良いです。
Long型(int64型)の変数を用意しておいて
varInt64FileSize = FileLen(filePath)
のようにします。
そして設定ファイルが文字列でされているのであれば
CLng(設定ファイルの文字列)
とすることによりLong型(Int64型)に変換することができます。
結果的に
varInt64FileSize >= CLng(設定ファイルの文字列)
のような条件式がベターかもしれません。
ご回答ありがとうございます。
まず「flieLenで整数を取得」とは以下のFileLenメソッドでしょうか?
→はいそうです。こちらバイト数で指定する値を返すとのことですが、キロバイトも可能でしょうか。
Yoichi
(Yoichi)
6
このメソッド自体はバイト数しか返しませんので、設定値がキロバイトで指定しているのであれば、それを1024倍して比較してください。
varInt64FileSize >= CLng(設定ファイルのキロバイト数の文字列)*1024