• ベストアンサー

エクセルで空白セルを空セルに

B1にセルをおきます。A1の内容を比較します。 if A1=0 then B1を空セルに else A1をB1に代入 endif 同様にA列の内容を比較し結果をB列に格納します。 VBAではどのように記述しますか?

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

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

該当のシートのコードに下記のように記述 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then 'A列のみ判定 If Target = 0 Then '変更内容が0またはブランクなら Target.Offset(0, 1).Clear '同じ行のB列の内容をクリア Else Target.Offset(0, 1) = Target '同じ行のB列にA列の値をセット End If End If End Sub

marutin99
質問者

お礼

ありがとうございます。たすかりました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

>B1にセルをおきます 意味不明。B1はセルの番地じゃないの。 >A1の内容を比較します 何とA1を比較するの? >同様にA列の内容を比較し結果をB列に格納します 同様に第2行目以下についても、同じ作業を行う。 >if A1=0 then B1を空セルに このように Thenの前で改行したらエラーになるのではないですか。 Sub test01() if range("A1")=0 then Range("B1")=0 End Sub はエラー ↓ Sub test01() If Range("A1") = 0 Then Range("B1") = 0 Else Range("B1") = Range("A1") End If End Sub End If これを行変化させやすいように Sub test02() d = 10 For i = 1 To d If Cells(i, "A") = 0 Then Cells(i, "B") = 0 Else Cells(i, "B") = Cells(i, "A") End If Next i End Sub 質問の文章はしっかり表現してください。 それとVBA(マクロ)の本でもまず1冊読んでから質問することをお勧めします。

marutin99
質問者

お礼

ご指摘ありがとうございます。今回は大至急修正しないといけなかった為本を読む時間もありませんでした。次回から気をつけます。

すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

if Range("A1") = 0 then 'B1を空セルに Range("B1") = "" else 'A1をB1に代入 Range("B1") = Range("A1") endif

marutin99
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A