- ベストアンサー
数式が設定されているセルがアクティブになったら
Excel 2016で、数式が設定されているセルがアクティブになったらメッセージを表示するには、どうしたらいいでしょうか? ブックには複数のシートがあり、すべてのシートに適用したいです。 Excel 2016以前のバージョンにも対応した方法が理想的です。。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは、 >数式が設定されているセルがアクティブになったらメッセージを表示する アクティブをどのように解釈すればよいか分かりませんが、取敢えず、選択されたらと解釈し、 運用者に数式のあるセルを選択した時に警告の意味で表示するなら、 データの入力規則で すべての値を選び、入力時メッセージタグでセルを選択した時にメッセージを表示するにチェックを入れ、タイトルやメッセージを入力すれば可能です。 入力設定時、同じシートなら複数セルに設定可能です。(少々手間ですが) また、入力させないようにするには、保護とセルのロックで出来ます。 アラート表示は、保護に関しての云々です。 さらに、VBAで行う方法。ブック全シートで表示するなら、 Ctrl+F11でVBEを開き ThisWorkbook モジュールに Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If Target.HasFormula Then MsgBox "数式が入力されています。" End If End Sub セル選択時に表示されます。 (他の処理をする場合などは、EnableEventsなどの設定が必要になるかも) 他にもやり方は色々ありますが、難しくなってしまいますのでこの辺で。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
質問者は、中級者か初級者かわからないが、 >セルがアクティブになったら のしくみを実現巣すには、Eventsという仕組みを使うことになると思うが、 VBAやクラスモジュールなどの、進んだ分野の勉強が必要です。ウインドウズアプリでは、イベントの機能、似た機能は当たり前なので、すぐできると思っているかもしれないが、基礎は高等な技術です。VBAの本(初級・中級2500円程度まで)によっては、説明してないかも。 VBAでやるなら Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.HasFormula = True Then MsgBox "処理" End If End Sub のMsgBox "処理"の行に、処理したいことをVBAコードで別途作って記述することになろう。 シートに式(たとえば=A1,=SUM(A1:A3) のような式が埋め込まれているセル)のあるセルをクリックすると、「処理」とメッセっセージボックスが出 る。 今までこんな質問は、ここのコーナーで見たことはない。 上記はSheet1内の限定です。多数の各(全)シートに広げるなら、どうするか、別途勉強のこと。 また上記コードもどうすれば、どこへ書けば、用意できて動かせるか、本やWEB記事でも読んで勉強のこと。 この内容の質問するニーズが(初心者や中級者向けには)納得できなくて、それ以上書かない。
お礼
ありがとうございました!
お礼
ご回答ありがとうございます! 数式が入力されているセルでも運用者に上書きを許可して、数式ではなくなったら、 それ以降はメッセージを表示させないようにしたいので、 教えてくださったBVAで対応しようと思います。 ありがとうございました!