• ベストアンサー

excel VBAをやっているのですがデータ1かデータ2のどちらかが空

excel VBAをやっているのですがデータ1かデータ2のどちらかが空欄だったら、チェックに未入力と入力するにはどのような方法でやればいいのですか? どちらかというのがうまく出来ません・・・ データA データB チェック aaaaa bbbbbb aaaaa        未入力 ccccc cccccc こんな感じにやりたいのですが・・・

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

一番単純なのだと Sub ChackAB() For i = 2 To 4 If Cells(i, 1) = "" Or Cells(i, 2) = "" Then Cells(i, 3) = "未入力" Next i End Sub

その他の回答 (2)

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.3

関数でしたら  =IF(OR(ISBLANK(A2),ISBLANK(B2))=TRUE,"未入力","") ですみます。 あとは データー・入力規則 でも可能です。 VBA でしたら  IF trim(RANGE("A2").value)) = empty or trim(RANGE("B2").value)) then RANGE("C2").value)="未入力" end if となります。 でも実際には 複数行の処理を行わないとだめですから 実際は Dim Ws As Worksheets Worksheets("Sheet1").Select Dim Rcnt, C, I, J As Integer Dim Rg_A, RG_B, RG_C As Range Rcnt = Range("A2").CurrentRegion.Rows.Count '表の行数 SET RG_A = Range("A2:A" & Rcnt) 'データA SET RG_B = Range("B2:B" & Rcnt) 'データB SET RG_C = Range("C2:C" & Rcnt) 'チェック FOR I=1 to Rcnt IF Trim(RG_A.ROws(I).value ) = empty OR _ Trim(RG_B.ROws(I).value ) = empty then RG_C.Rows(I).value = "未入力" end if NEXT I Exit sub となります

回答No.2

IF LEN(データ1)=0 OR LEN(データ2) THEN   チェック = "未入力" END IF でいいと思いますが…。 ちなみにLENで文字数を判断してます。 LEN(RTRIM(データ1)) = 0 のほうが論理的なバグがないと思います。 RTRIMはデータ1の中身の右側の空白を削除します。 データ1が”   ”のように空白を入力された場合にLENで空白数を数えてしまわないように。   LEN(”   ”)は3になります。   LEN(RTRIM(”   ”)は0になります。

関連するQ&A

専門家に質問してみよう