- ベストアンサー
excel VBAをやっているのですがデータ1かデータ2のどちらかが空
excel VBAをやっているのですがデータ1かデータ2のどちらかが空欄だったら、チェックに未入力と入力するにはどのような方法でやればいいのですか? どちらかというのがうまく出来ません・・・ データA データB チェック aaaaa bbbbbb aaaaa 未入力 ccccc cccccc こんな感じにやりたいのですが・・・
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一番単純なのだと 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)
関数でしたら =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 となります
- meganebasi
- ベストアンサー率0% (0/1)
IF LEN(データ1)=0 OR LEN(データ2) THEN チェック = "未入力" END IF でいいと思いますが…。 ちなみにLENで文字数を判断してます。 LEN(RTRIM(データ1)) = 0 のほうが論理的なバグがないと思います。 RTRIMはデータ1の中身の右側の空白を削除します。 データ1が” ”のように空白を入力された場合にLENで空白数を数えてしまわないように。 LEN(” ”)は3になります。 LEN(RTRIM(” ”)は0になります。