Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2007)
「""]が数値として扱われる?
投稿日時: 19/11/20 12:36:39
投稿者: o_taroh

「""」を入力したセルが数値の大小関係に関与してくるのはなぜですか?
単純にA1に「=""」と入力するとCells(1,1)>=5もCells(1,1)<=5も成立してしまいます、Ifを重ねないとだめなのでしょうか
宜しくお願いします。
 

回答
投稿日時: 19/11/20 13:02:40
投稿者: よろずや

数値として認識されている訳ではありません。
 
Excel の並び順として
文字列>数値
というのがあるだけです。

回答
投稿日時: 19/11/20 14:22:27
投稿者: WinArrow
投稿者のウェブサイトに移動

>Ifを重ねないとだめなのでしょうか
 
どのようなことを期待しているのでしょうか?
 
>Cells(1,1)>=5もCells(1,1)<=5も成立してしまいます
前者は、True
後者は、False
になると思いますが・・・・・
因みに、ここ「成立」とは、Trueという意味ではないですよね?
  
 

投稿日時: 19/11/20 19:42:37
投稿者: o_taroh

ありがとうございます、例えば
「""」の入るセルは
Range("H3").Select
ActiveCell.Resize(10, 1).FormulaLocal = "=IF(SUM(RC[-5]:RC[-1])=0,"""",SUM(RC[-5]:RC[-1]))"
でデータの無い行には「""」が入ります 
H3〜H12 を If Cells(r,8)>=50 で検索します
ところが空白セル("")もこの If の実行対象になってしまい悩みましたが解決できず
If Cells(r,8) <> "" And Cells(r,8)>=50 Then
として逃れはしましたが、もっとスマートな書き方ないでしょうか。
よろしくお願いいたします。

回答
投稿日時: 19/11/20 20:27:19
投稿者: WinArrow
投稿者のウェブサイトに移動

スマートかどうかは、わかりませんが、
 
2つの考え方があります。
 
1つは、
掲示のような
If 条件1 AND 条件2 Then
条件1は、セル<>"" または IsNumeric(セル) または Len(セル)=0
など
条件2は、セル>=50
 
 
もう一つは
数式角のの際、「""」ではなく「0」とします。
そして表示形式で、0だったら、見えなくします
方法1:#,###
方法2:#,##0;-#,##0;;
 

回答
投稿日時: 19/11/20 21:06:48
投稿者: simple

以前、同じような内容の質問をしていませんか?
 
(空白セ)>=2がTruenoになる?
https://www.moug.net/faq/viewtopic.php?t=78700
 
これとはまた別の話ですか?

投稿日時: 19/11/21 07:08:54
投稿者: o_taroh

みなさんありがとうございます。
 
WinArrowさんの見えない0がいいですね、アイデアを拝借させていただきます。
 
simple さん、以前ご指摘のような質問をした記憶がないのですが、サイトを見ると確かにしてますね、83歳の高齢者なもんで、あるいは? という不安を抱えながらの日々です。これからもちぐはぐな投稿をするかもしれませんが、高齢弱者に免じてぜひご容赦のほど、よろしくおねがいします。