こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2005-08-25 14:29:48

QNo.1603814

困ってます

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

結論から言って、マクロを使わずに、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

投稿日時 - 2005-08-25 14:55:35

お礼

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

投稿日時 - 2005-08-25 15:07:37

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

こんにちは。maruru01です。

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

投稿日時 - 2005-08-25 15:05:38

ANo.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のどちらか一方でも未入力なら休暇と表示の様にするべきかと

投稿日時 - 2005-08-25 15:01:39

あなたにオススメの質問