• ベストアンサー

excelでマクロを使わずに空白を入れたい

勤務時間を管理する表を作成しています。 A1に出勤時間、A2に退社時間、A3はリストで「出勤」か「休暇」を選ぶようにします。 A3のリストの「休暇」を選んだら、A1,A2に入っている文字を自動的に削除したいのですが、これをマクロを使わないで、関数だけでもできる方法ってありますか? A1,A2は出勤時間を手入力するので、関数を入れることは出来ません。 よろしくお願いします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

結論から言って、マクロを使わずに、A1,A2に入っている文字を自動的に削除することは不可能です。 関数を使って非表示には出来ますが、出勤時間を手入力するのであればこれもだめですね。 あとは、削除ではないですが、条件付書式で見えなくすることは可能です。ただし、あくまで見えないだけですので、入力されたデータは残ります。 やはりマクロをつかったらいかがですか? Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$3" Then Exit Sub If Target.Value = "休暇" Then Target.Offset(-2).Resize(2).ClearContents End Sub

noname#31026
質問者

お礼

早速のご回答ありがとうございました。 やっぱりマクロを使わずに削除することはできないんですね。

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 No.1の方が指摘しているように、関数(数式)は、自分自身以外のセルの値を変更(含削除)することは出来ません。 VBA(マクロ)を使用しないのであれば、No.1の方のいうように条件付書式で見えないようにして、計算する時には、A3の値を条件にするように数式を作ればいいと思います。 ちなみに条件付書式の方法は、A1:A2を選択して、メニューの[書式]→[条件付書式]で、 「数式が」 「=A$3="休暇"」 として、書式でフォントを白(セルの背景色と同じ色)にします。

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

回答から言うと出来ません。 ごまかしでいいなら、「書式」「条件付き書式」で A1:A2を「数式が」「=A$3="休暇"」で文字色を背景色と同じにする。 計算用にA4:A5に A4=IF(A$3="休暇",0,A1) A5=IF(A$3="休暇",0,A2) としてこの数値で計算する。 通常は A3=IF(OR(A$1="",A$2=""),"休暇","出勤") の様にしてA1,A2のどちらか一方でも未入力なら休暇と表示の様にするべきかと

関連するQ&A

専門家に質問してみよう