プロが教えるわが家の防犯対策術!

エクセルのシートについてご教示下さい。

例:シート1に入力必須部分がA1 A2 A3と3か所あったとします。
  この3か所すべてに必要な内容が入力されないと 
  シート2へ移動できなくする方法ってございますでしょうか?
  ちなみにA1 A2 A3 はリストができています。
  必須事項リストから選択して入力する感じなんです。

  よろしくお願いします。

A 回答 (5件)

こんにちは!



シート2に移動するとは
シート見出しの「Sheet2」をクリックするなりして手動で移動する!ということですかね?

ぱっ!と思いつく方法として・・・
VBAになってしまいますが、一例です。

↓のコードをSheet2のシートモジュールにしてみてください。

Private Sub Worksheet_Activate()
 Dim c As Range
 Dim wS As Worksheet
  Set wS = Worksheets("Sheet1")
   If WorksheetFunction.CountBlank(wS.Range("A1:A3")) > 0 Then
    MsgBox "未入力セルあり"
    wS.Activate
     For Each c In wS.Range("A1:A3")
      If c = "" Then
       c.Select
       Exit For
      End If
     Next c
   End If
End Sub

※ もっと簡単な方法があればごめんなさい。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。VBAになってしまうかもなぁ
と思っておりました。 チャレンジしてみます。

お礼日時:2020/03/16 09:07

別案として、



三箇所に 正統な、
入力が なされない限り、
シート2を 隠し続けてしまいます。


隠しシートに、

手動で 移るには、
相当なものが 必要です。
    • good
    • 0
この回答へのお礼

別案ありがとうございます。補足コメント追加しておけば良かったのですが
私が作成する書類であればシート2を隠してある事がわかるのですが
年配者社員が扱うので隠してしまうのが どうかと思ってしまいました。
でも違う角度からのアプローチして頂き感謝しております。
参考にさせて頂きます。

お礼日時:2020/03/16 09:13

No.1さんの回答に反応が無いということは、ぬこ39さんは、VBAはNGの方ですか?


であれば、「シート2へ移動できなくする方法」ではないのですが、次のような方法で、シート2への入力をブロックしてみてはいかがでしょうか。

シート2の全セルに対して、入力規則のユーザ設定で、次の式を指定する。
=COUNTA(Sheet1!$A$1:$A$3)=3

※エラーメッセージも自由に設定できるので、「まずは、シート1の必須項目を入力せよ!!」みたいな表示も可能です。
    • good
    • 0
この回答へのお礼

ありがとうございます。 VBA NGって事はないのですが
詳しくない為、お恥ずかしい事なんですが関数に頼りがちです。
ご指南下さった=COUNTA( 試してみました。
私の設定方法が間違っているのかもしれませんが シート1・シート2も
シート3にてリスト作成した物をデータの入力規則を使って入力している為
シート2全体へ二重に入力規則を設定できないようなアラートが出てしまい
うまく作動させる事ができないみたいです。
理解力不足ですみません。_(._.)_ 
他の方法もあるようでしたら ご教示ください。 おねがいします。

お礼日時:2020/03/16 10:34

空欄に赤色が着くような条件付き書式を設定して注意喚起する程度でいいんじゃないですか?

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

ありがとうございます。
既に必須事項のセルは赤になっていて
リストから選択し入力すると色無し
設定ですがそれでも無視して必須事項に
入力せず シート2へ進んでしまう社員が
いるものですから 何とかシート2へ進めなく
する方法を考えた次第です。
またご教示下さい。 回答頂けた事感謝致します。

お礼日時:2020/03/16 19:38

>既に必須事項のセルは赤になっていて



前提情報はきちんと最初に提示してください。
一般機能ではシート遷移を制御することはできないかと思われます。
シート2で何をしているか情報がないので単なる思い付きになりますが、条件付き書式で例えば3つのセルが全て埋まってなければシート2の必要な範囲が文字色白になってしまうとか表示形式を「;;;」にしておくとかで見た目何もないようにしてしまうとか(色や罫線などの書式は残ります)にしておいたら、びっくりしてシート1を見直すんじゃないですかね。
    • good
    • 0
この回答へのお礼

chonami さま
ご指摘ありがとうございます。
違った形からのアプローチして頂いた事には感謝いたします。
No.4にご回答頂いている注意喚起が私の希望ではなかった為
色入りセルについては必要の無い条件だと思っておりました。
関数で行う事は不可能だと思いましたので
No.1 tom04さまからご提案して頂いたVBAで試行錯誤中です。
お世話になりました。

お礼日時:2020/03/17 15:26

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