• ベストアンサー

空白セルの記述方法

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

質問者が選んだベストアンサー

  • ベストアンサー
  • CC_T
  • ベストアンサー率47% (1038/2201)
回答No.3

Cells()は行と列を数値指定ですから、A1セルならcells(1,1)、B2セルならcells(2,2)です。 そして、入力無し(空白)は””(ダブルクォーテーション2つ)でいい。 If Sheet1.Cells(1, 1) = "" Then でsheet1のA1セルに入力が無いならば…という記述となります。

その他の回答 (2)

  • kamikami30
  • ベストアンサー率24% (812/3335)
回答No.2

とりあえず、Visual Basic(VB)とVBA(Visual Basic for Applications)は別物です。

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.1

cellsプロパティを使用されたいのでしたら、指定は数値指定です。 A1はcells(1,1) B2はcells(2,2) 列をアルファベット指定したいのでしたらrangeプロパティとなります。 range("a1") 空白セル判定であればCDate,CCur指定する必要はないと思いますが。 if Sheets("sheet1").cells(1,1).value=empty then 又はif Sheets("sheet1").range("a1").value=empty then VBA独学者なので、ご参考まで。

関連するQ&A

  • エクセルマクロ 【空白セルを無視する方法を教えてください】

    マクロを独学で学び仕事に応用しているのですが、どうしても分からないことが発生してしまい、質問です。 内容は、今、エクセルシートのA1~B5の範囲で A B 1 1 1 2 1 2 3 4 1 5 1 という形で入力されています(見難くてスミマセン)。 この状態から「A列とB列に同じ数字が入力されてれば、メッセージBOXを表示して、なおかつOKボタンを押したら該当セルを赤くする」というマクロを作りたいのですが、本来であれば1行目のみ赤くなるはずなのですが、空白セルが含まれている3行目も赤くなってしまうんです。つまり、空白セルも「同じ値」と認識されているみたいなのですが...。 この場合、空白セルを無視するにはどうしたらよいのですか?教えてください。なお、マクロは以下のように作っています。 Sub ナンバーチェック() Dim Btn As Integer For X = 5 To 10 If Cells(X, "A").Value = Cells(X, "B").Value Then  Btn = MsgBox("同じ数値です", vbOK, "警告")  If Btn = vbOK Then   Cells(X, "A").Interior.ColorIndex = 3 Cells(X, "B").Interior.ColorIndex = 3 End If End If Next End Sub

  • 空白セルを非表示に

    A1:B50の範囲にデータが入っています。A1:A50までに空白のセルがあれば、その行を非表示にするマクロを組みました。 Dim rw As Integer Application.ScreenUpdating = False For rw = 1 To 50 If Range("A" & rw) = "" Then Rows(rw).EntireRow.Hidden = True End If Next Application.ScreenUpdating = True これをA1:B50の範囲でどちらか入っているデータの多い方に合わせて非表示にするときはどうなるのでしょうか。説明がヘタですみません・・・ たとえばデータの入っているセルが、 A列がA1:A10まで、B列がB1:B:15までで以下空白の場合、今のマクロではA列でしか空白を判定しませんよね?なのでA11以下は空白にされてしまい、B12:B15までのデータも一緒に非表示されてしまいます。 どうしたらよいか教えて下さい。

  • エクセル 関数で空白を入れたセルと空白セルは違う?

    エクセル2010を使っている者です。 「データ」というシートのAL5というセルに IF(ISERROR(INDEX(AL1:AL500,$A$5)),"",INDEX(AL1:AL500,$A$5)) と関数を入れており、その結果、空白が戻り値となり、見た目上、AL5は空白となっています。 しかし、別のシートのあるセル(A1とします)に =IF('データ'!AL5="","",DATE(YEAR('データ '!AL5)-1,MONTH('データ '!AL5),DAY('データ '!AL5))) と関数を入力すると、AL5は空白として扱われていないようで、そのセル(A1)は空白にならずに「H1810.12.31」と表示されてしまいます。 AL5に空白が返されているのなら、それを空白として扱ってもらうようにするにはどうすれば良いですか?

  • Excel 空白以外セルのリストアップ

    シートaのa列に空白セルの混ざったデータがあります。 それをシートbのa列で記入されているセルの値だけ表示されるようにしたいのですがご助言おねがいします。 データは日々追加されていくもので、 シートaに記入があったら自動的にシートbに書き加えられるようにしたいのですがどうしたらよいでしょうか。

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

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

  • VBAエクセル空白セル0の入力

    C列が空白となるまで、F列・・・L列の空白セルに0を代入する。 という処理を行いたく以下コードで実行をして ファイル種類をCSVにて、保存した後名前の変更で拡張子をTXTにすると データ入力された列の以降がカンマの羅列が「,,,,,,,,(改行)」の繰り返しで表示されてしまいます。 (CSV保存の後、視覚的に空白部分を行選択して削除するとなくなります。) どうすれば、このカンマが表示されなくなるでしょうか。 うまく説明できてないですが、アドバイス御願いします。 Dim i As Long i = 3 Do Until Cells(i, 3).Value = "" If Cells(i, 6).Value = "" Then Cells(i, 6).Value = "0" End If If Cells(i, 7).Value = "" Then Cells(i, 7).Value = "0" End If If Cells(i, 8).Value = "" Then Cells(i, 8).Value = "0" End If If Cells(i, 9).Value = "" Then Cells(i, 9).Value = "0" End If If Cells(i, 10).Value = "" Then Cells(i, 10).Value = "0" End If If Cells(i, 11).Value = "" Then Cells(i, 11).Value = "0" End If If Cells(i, 12).Value = "" Then Cells(i, 12).Value = "0" End If i = i + 1 Loop

  • 空白セル

    Excel2007です 仮にC1のセルに=A1-B1の計算式でA1かB1のセルを空白にすると#VALUE!エラーがでます 空白セル=0(ゼロ)と出来ないでしょうか

  • 空白セルに●を入れたい

    Excelのセル範囲(例:としてA1からC10)のセルを調べて、 空白のセルになにかの文字(例:●)を打ち込みたい場合のVBAの書き方を教えてください。 Sub セル埋め() Dim r As Range, i As Range Set r = Range("A1:C10") '範囲指定 If Intersect(r, Target) Is Nothing Then For Each i In r If i.Value = "" Then i.Value = "●" Next i End Sub この書き方にこだわっているわけではないので、もっと簡単なやり方でもけっこうです。

  • エクセルvbaでのセルの情報を貼り付け方法

    vba初心者です。sheet1にあるセルの情報をsheet2にあるセルに貼り付けようと考えています。 下記のようにプログラムしました。 If Cells(Line, 6).Value = "" Then Cells(Line, 6).Value = "データがありません" Cells(Line, 5).Value GoTo コピー貼り付け End If コピー貼り付け: Cells(Line, 5).Copy 'コピーする Worksheets("輸入Parts").Range("A2").PasteSpecial Paste:=xlPasteValues '値を貼り付け 問題はコーピー貼り付けの箇所でRange("A2")ではなくA列の最初の空白のセルに貼り付けるようにしたいです。 どなたかお力をお貸しください。

  • A列にB列の空白セル以外のセルの数だけ1から番号をふりたい。

    A列にB列の空白セル以外のセルの数だけ1から番号をふりたい。 WIN7 Excel2007でマクロ作成中です。A列にB列の番号の入っているセル(空白セル以外の)の数だけ番号を入力したいのですが、下記コードで、うまく出来ません。どうしたらよろしいでしょうか。 Sub 行番号を入れる2() Dim i As Integer Dim fCnt As Long 'シートが保護されていたら保護を解除 If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect End If fCnt = WorksheetFunction.CountA(Sheets("一覧").Columns(2)) 'COUNTA関数でB列の入力セル数を求める。 For i = 1 To fCnt Worksheets("一覧").Cells(i + 3, 1).Value = i Next i End Sub

専門家に質問してみよう