dポイントプレゼントキャンペーン実施中!

エクセルで近未来(3ヶ月MAX)の予定表を作っています。

日付を入力した時に、その日付けが土日だった場合、入力できないか、又は、何らかの警告が出るような設定は可能ですか?

可能ならどうするのですか?

A 回答 (7件)

Excel97なので他のバージョンでは若干文言に違いがあるかも。



データ-入力規則で「入力値の種類」を「ユーザー指定」にして「数式」に

=AND(WEEKDAY(A1)>1,WEEKDAY(A1)<7)

と入れると セルA1に 10/4 と入れても入らなくなります。
エラーメッセージのスタイルを変更するとメッセージ表示のみにも出来ます。
    • good
    • 0
この回答へのお礼

ありがとうございました。参考になりました。

皆さん良い回答ばかり。皆さんにポイント点けたいのですが・・・。

お礼日時:2003/10/06 15:09

こんにちは



入力規則 設定タブ ユーザー設定▼

A1(またはA1:Anの適当な範囲)に日付入力として
A1を選択(A1から範囲選択)

数式欄に =WEEKDAY(A1,2)<6

で試してみて下さい
    • good
    • 0
この回答へのお礼

提案ありがとうございました。

いろいろやってみます。

お礼日時:2003/10/06 15:10

1.入力した日付が何曜日であるかを示す方法



例えば2003年10月4日を入力するのに

2003/10/4

のように入力しますね。これをセルの書式で「ユーザー定義」を選択し、「種類(T)」のところに下のように打ち込みます。

yyyy-mm-dd"("aaa")"

そうすると  2003-10-04(土)  のように表示されます。表示の桁をそろえる必要がなければ

yyyy-m-d"("aaa")" としてもOKです。日付の入力個所に予めこの書式を設定しておくと便利です。ただし祝日には対応できません。


2.土日であれば警告を発する方法

例えば2003年10月4日を入力するのに

2003/10/4

とした場合、この表記は西暦1900年1月1日(だったと思います)からの累積日数として記憶されています。つまりこの日付は割り算ができるのです。(セルの書式によっては割った答えが日付形式で表示されることがありますが、書式を「数値」に設定すれば数字で示されます。)

この日付を入力したセルを1週間の日数である7で割って、そのときに求められる「あまり」の数値でもって曜日を割り出せます。

因みに 2003/10/4 を7で割ると余りは 0です。
2003/10/5 では余りが 1になります。
ということから余りが0または1の場合に「休日です!」というようなメッセージを隣のセルに表示する方法があります。

具体的には余りをもとめる MOD関数を用います。つまり

=mod(日付のセル,7)

として、その値(余り)を求め、さらに IF関数でもって、もしも余りが0または1であれば「休日」と表示し、そうでなければ(スペース)とする、というように設定されたらいかがでしょう。

どちらかというと1.の方が簡単ですが、2.の方法は別の機会にも応用が利くと思いますので・・・ご参考まで
    • good
    • 0
この回答へのお礼

いろいろ細かく教えていただきありがとうございました。

OK=バンザイ。

お礼日時:2003/10/06 15:12

ちょっとずれますが


書式-条件付き書式-式が、で
式を=AND(WEEKDAY(A1,2)>5,ISNUMBER(A1))
にしてパターンや文字を白黒色以外を設定すると
土日の日付を入れると、色がつくので、警告をしたことになります。
ISNUMBER(A1))は、この部分がないと、未入力セルに色がついてしまうので、防ぐために入れました。
    • good
    • 0
この回答へのお礼

ウ~ム。なるほど!

参考になりました。 みなさん良回答ばかり。"imogas"(芋菓子?)さんに、ポイントがあげられなかったらゴメン。

お礼日時:2003/10/06 15:14

入力規則で「式が」=WEEKDAY(A1,2)<6 のやり方は、スマートですが、いろいろやって見ると、オートフィルしたり、コピー貼りつけするとエラー警告がでませんでした。


キーボード入力に限る?これって本当?
それと未入力セル(DELキーを押したと同じ状態)に対し、=WEEKDAY(A1)が7を返し、=WEEKDAY(A14,2)が6を返すのも、なんか使う上で不安です。
    • good
    • 0

再び こんにちは



少々、疑問符が付きましたので解説をかねて追記します

>いろいろやって見ると、オートフィルしたり、
>コピー貼りつけするとエラー警告がでませんでした。

コピー貼りつけに関して
入力規則は、入力時の監視ですから
設定されていないセルをコピペすれば反応しません

コピー貼り付けに関しては 条件付き書式設定も
同様で上書きされてしまいます。

フィルに関しては既に入力済のセルであるので同様です。

ご質問の内容が、連続した日付の生成なら出だし
の日付の入力を監視すればあとは式で可能ですし
そうでない場合は、不連続の予定のある日付を入力
するとの判断からの設定です。

>それと未入力セル(DELキーを押したと同じ状態)に対し、=WEEKDAY(A1)が7を返し、
>=WEEKDAY(A14,2)が6を返すのも、なんか使う上で不安です。
何が不安なのでしょうか?
空白=0=シリアル値の1900/1/0 (土) ですから
必然的にそうなります。
WEEKDAY()とWEEKDAY(,2)の違いはヘルプを見れば
すぐに解る筈ですから一読されては如何でしょうか?
    • good
    • 0
この回答へのお礼

再びありがとうございました。

"ヘルプを参照”のご指摘は目からウロコでした。

お礼日時:2003/10/06 15:16

VBAですが、A列に限り(If Target.Column = 1 Then)


土日を入れると、メッセージを出し、消去します。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If Weekday(Target) = 1 Or Weekday(Target) = 7 Then
MsgBox "土日です"
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End If

End Sub
    • good
    • 0
この回答へのお礼

ご提案ありがとうございます。

いろいろやってみます。

お礼日時:2003/10/07 08:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!