- ベストアンサー
日曜日は入力させたくない
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
[No.2]の補足、 》 該当入力箇所が日曜日であれば、入力をできなくする セル A5 に式 =DATE(A$1,B$1,1) を入力した後で、 式 =WORKDAY.INTL(A5,1,"0000011") を入力したセル A6 を下方にズズーッとオートフィル ただし、セル A5 以下の書式は、 d(ddd) としておく。
その他の回答 (4)
- heisukewada
- ベストアンサー率58% (93/160)
リストが、表示されなくてもいいのなら 入力規則で 入力値の種類:ユーザー設定 数式:=AND(WEEKDAY($A5,2) <> 7, OR(B5 = "ー", B5 = "◯", B5 = "×")) エラーメッセージタブで スタイル:停止 タイトル:日曜日は入力できません。 マクロを使うのなら、 入力規則は、 入力値の種類:リスト 元の値:ー, ◯, × Private Sub Worksheet_Change(ByVal Target As Range) Dim ValidValues As String Dim Cell As Range Dim IntersectRange As Range Dim SelectedValue As Variant ValidValues = "ー, ◯, ×" Set IntersectRange = Intersect(Target, Me.Range("B5:AO35")) If IntersectRange Is Nothing Then Exit Sub On Error Resume Next Application.EnableEvents = False For Each Cell In IntersectRange If Weekday(Me.Cells(Cell.Row, 1), 2) = 7 Then ' 日曜日の場合 Cell.Value = "" MsgBox "日曜日には入力が許可されていません。", vbExclamation Else SelectedValue = Cell.Value If InStr(1, ValidValues, SelectedValue) = 0 Then Cell.Value = "" MsgBox "有効な値を入力してください。", vbExclamation End If End If Next Cell Application.EnableEvents = True End Sub マクロを使う場合、あるいは、ユーザー定義で、日曜はだめよを、定義した場合、入力規則を使わないで、欄外に例えば B38:AO38 に ◯ B39:AO39 に × B40:AO40 に ー を、ズラッと入力しておくと、右クリックの”ドロップダウンリストから選択”が使えます。 これは、ショートカットキー ALT+↓ なので、 入力の際、マウスを触ることなく、TABキー ALT+↓ ↓ で、入力することができます。
お礼
ありがとうございます リストは生かしたままとしたいです 結局、日曜日をスキップさせて表示しないようにさせる方法で 対応します
- kkkkkm
- ベストアンサー率66% (1719/2589)
マクロを使ってもよろしければ、強引に「-」にしてしまう方法があります。 該当のシートタブを右クリックして「コードの表示」で出た画面の右側に以下をコピペするとA列に(日)が含まれた行でセルを選択したりデータを入力したりしてもすべて「-」に変えてしまいます。 AU1は右端(503の夕)の1行目のセル番地を記載してください。 B列から上記の列までが対象となります。 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Column < Range("B1").Column Or Target.Column > Range("AU1").Column Then Exit Sub End If If InStr(Cells(Target.Row, "A").Text, "(日)") > 0 Then Target.Value = "-" End If Application.EnableEvents = True End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False If Target.Column < Range("B1").Column Or Target.Column > Range("AU1").Column Then Exit Sub End If If InStr(Cells(Target.Row, "A").Text, "(日)") > 0 Then Target.Value = "-" End If Application.EnableEvents = True End Sub
お礼
詳細をありがとうございます!!! 試してみましたが、B1=>B7、AU1=>AO7 に置き換えて、上書き保存しましたが 動作しなかったです 日曜日はスキップさせる方法で対応しようと思います ありがとうございました
補足
エクセルシートのリンクを張り忘れていました https://drive.google.com/file/d/14mg4WkrjIjiJUNS_EO5rq6XKe_O3HGwx/view?usp=sharing
- msMike
- ベストアンサー率20% (364/1804)
- webuser
- ベストアンサー率33% (372/1120)
日曜日のリストを-だけにすればいいのでは?
お礼
言われる通りにやってみたのですが 以下のリンクのように、土曜日曜の網掛けがなくなってしまい 土曜と日曜がスキップされてしまいました もしかして 入力させない=入力の項目も出さない という意味でお教えいただきましたでしょうか? ちがうんです 毎日日付は出しますが、日曜日の◯や✕を入力できないようにする またはハイフン固定にしたかったのです https://drive.google.com/file/d/16AbR_uqOsCsW2m0I1qbqrDjXNy8U876q/view?usp=sharing
補足
"0000001" ですね? これで日曜日をスキップできる? 入力せないとかとなれば、思いっきりコーディングしないと無理っぽいです