• ベストアンサー

ExcelVBAでの空白セルの判断方法

Wendy02の回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 >ExcelのVBAでセルに文字(数字又は文字)が書かれているかの判断に”Empty”を使用していますが、 たぶん、ご質問が正確に伝わっていないようです。 Cells(1,1).Value =Empty を判定に使っているということでしょうか?コードを見せないと良く分かりません。 If Cells(1,1).Value =""  '長さ0の文字列 は、Cells(1,1).Value =Empty  と同じ判定です。 通常は、 IsEmpty(Cells(1,1)) などとしますが、 VarType(ActiveCell) = vbEmpty という方法もあります。 >本当に文字だけ書かれているかどうかを判別する方法はないでしょうか、 その場合は、 VarType(ActiveCell) = vbString を使用します。なお、IsNumeric では、文字列の数字なのかは判定出来ません。 なお、場合によっては、Rangeオブジェクトは、Valueプロパティを加えてください。

ganchan59
質問者

お礼

早々にありがとうございました。 VarType(ActiveCell) = vbEmptyはEmptyと同じになります。 LemとTrimでうまくいきました。

関連するQ&A

  • VBA スペースが入力されていても、空白セルと判断する方法

    VBAで、空白ではないときに処理するようなマクロを組みたいのですが、空白のはずのセルにスペースが入っている場合があり、 IF cells(i,j)<>empty then のような記述では、スペースが入力されているセルも該当してしまいます。 スペースのみのセルを消去するか、それか、数値か文字列の何かが入力されていることを判断するような方法はありますか? よろしくお願いします。

  • 空白と空白じゃないセルを判断するには?

    いつもお世話になっております。 条件により別のセルへ文字列を入力するという物を組みたいのですが、あてはめるべき表現の仕方がわからなくて困っております。 例で申しますと、 D列とE列に文字列が入っていたり空白だったりするセルが存在します。 条件は 「D列に何かしらの文字列が入っていて(特に決まった形が無い)、E列は空白の時だけ、F列へ「■」と入力し、G列は空白とする。」 「それ以外の条件はすべて、F列は空白、G列には「□」と入力する」 と、いうようにしたいのですが、空白は Dim i As Long For i = 3 To Range("B65536").End(xlUp).Row If Range("D" & i).Value = "" Then のように表現すればよいのかと思ったのですが、 「空白ではない」場合の条件をどのようにすればよいのかわかりません。(その為、全文を作る段階へ進めておりません。)   |D|E|F|G 1|あ| |■| 2|あ|え| |□ 3| |か| |□ 4| | | |□ 「空白ではない」と判断するコードの書き方をお教えいただきたく、よろしくお願いいたします。 環境はWindowsXP、Excel2003です。

  • 空白セルの記述方法

    Excel VBAで日付データがA列、通貨データがB列にあるとして シート1のセル(A:1)、セル(B:2)が空白セルとして条件式を作りたいのですが記述方法はどのようになりますか? 下記でよろしいでしょうか? If CDate(sheet1.cell(A:1).value) = Empty then If CCur(sheet1.cell(B:1).value) = Empty then

  • エクセルで空白セルを寄せたい

    エクセル2002使用です VBAは使わずに関数だけで空白セルがあるセルを詰めて表示したいのですが・・・   A|B|C|D|E|F|G 1 あ い う え お か き 2 ○   ○ ○   ○ の表を   A|B|C|D|E|F|G 1 あ う え か  2 ○ ○ ○ ○ のように表を書き換えたいのです。 1行目には必ず文字が入力されています。 2行目には入力されているセルと空白セルが不定期に入力されています。 2行目のセルが空白ならば、1行目のセルも削除して左へ詰めて 表を転記したいのです。 よろしくお願いします。

  • ExcelVBA 赤字のセルを黄色で塗りつぶす

    Excel VBA初心者です。 赤いフォントの数字と黒いフォントの数字を使って表を作ります。(空白のセルも有) 列(C~Y) 行(5~1000) 赤いフォントで数字を入力したら、自動的にセルが黄色で塗りつぶされるようにしたいのですが どうしたらいいでしょうか?回答よろしくお願いします。  

  • 空白セルにハイフンを表示

    エクセル2010です。 ある表の空白のセルに常にハイフンを表示させておき、数字や文字を入力するとハイフンが消えて、その文字が表示されるという設定や数式はあるのでしょうか。 もしも分かる方がいらっしゃいましたら、ご教示いただけないでしょうか。

  • 空白セルに飛ぶ方法

    Excelの入力で計算式が入っているセルを飛ばしてカーソルが空白セルに飛ぶ方法を教えて下さい。

  • countaで空白セルもカウントされてしまう

    エクセル2003で、counta関数を使って何かが入力されているセルの数を数えているのですが、 何も入力されていないセルまでカウントされてしまいます。 その何も入力されていないように見えるセルは、スペースもなにも入力されておらず、 そのセルの上でDelキーを押すと、そのセルはカウントされなくなります。 空白に見えるセルをDelキー押していけばいいのですが、空白に見えるセルが大量にあるので、1つ1つDelキーを押していくのは大変です。 空白に見えるセルをカウントしないようにする方法ありますでしょうか?

  • エクセルVBAで セルの空白を識別する

    早速ですが IF Application.ISBLANK(Q17)=TRUE Then って やると Q17 が 未定義エラーとなります。 セルに書き込む関数と VBAとは 異なるらしいのですが・・・イマイチでして。 VBで使う  ISNULLも 変数しか 受付ないようですので、一旦 tanka=cells(3,17) isnull(tanka) とやるようです。 VBAから 空白を 識別する方法は無いものでしょうか 厳密には 未入力 DELE SPACE すべて 空白でいいのですが 数字のゼロに 置き換えると ゼロの時に おかしくなりそうで・・・

  • セルを空白にしたら「0(ゼロ)」を表記させる方法

    セルを空白にしたら「0(ゼロ)」を表記させる方法の質問です。 「F5~F38」「H5~H38」「J5~J38」「L5~L38」「N5~N38」「P5~P38」「R5~R38」「D6~D38」「E5~E36」「T5~T36」「U5~U38」の範囲のセルに数字や文字を入力します。 上記範囲のセルに入力した数字や文字を消して、空白表示にした場合は自動で「0(ゼロ)」と表記させる方法はあるのでしょうか?