- ベストアンサー
エクセルの入力規則で数式のみ入力可能にするには
エクセル2000を使用しています。 A B C D E F 1 2 3 4 5 6 ROUND((A1+B1)*C1*D1*E1,1)) 2 2 3 4 5 6 ROUND((A2+B2)*C2*D2*E2,1)) という表を作成しています。 F列には、数式以外入力できないようにしたいのですが、 どうすればよいのでしょうか? どうかお知恵を貸して下さい。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 入力規則で数式のみ入力可能にする。 一般機能ではできないのではないでしょうか。 次のようなマクロ(拙い表現ですが)で処理するのはいかがでしょう。 1.入力規則を設定したいセル範囲を選択して、Input という名前を定義 します。 2.シートタブの右クリックから「コードの表示」を選択し、表示される 画面に以下をコピペして閉じます。 ' Private Sub Worksheet_Change(ByVal Target As Range) Dim chk chk = 0 If Intersect(Range("Input"), Target) Is Nothing Then Exit Sub If Target.Value = "" Then Exit Sub If "'" & Target.Value = "'" & Target.Formula Then Application.EnableEvents = False chk = 1 Target.Activate MsgBox "数式以外は入力できません。" Application.EnableEvents = True End If If chk = 1 Then SendKeys "{DEL}{F2}" End Sub
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
普通、関数は (1)前もって入れておいて、データを入れて結果を見る く2)データを入れて、直後に当人が式を入れる と思いますが 本件ニーズが、私には理解できない、不思議な問題です。 考え方や設計に無理はありませんか? ーー 通常の入力規則では、問題にするのは (1)データの値を直接(全ての値から文字列まで) (2)関数を利用できるが、関数が、利用する「値」と、結果として 返る「値」を問題にできるのみです。(ユーザー定義) (2)はセルの、書式や数式の有無・形を問題にできません(表現・指定できません) ユーザー関数化してやろうとしたが、やり方が悪いかもしれないが、エラーが出た。 ーー VBAでやると Private Sub Worksheet_Change(ByVal Target As Range) If Target.HasFormula Then Else Application.EnableEvents = False MsgBox "式を入れること" Target = "" Target.Select Application.EnableEvents = True End If End Sub VBEのそのシートのシートイベントに上記を貼り付ける。 (そのシートがSheet1なら、ProjectエクスプローラーのSheetなど。)
お礼
遅れて申し訳ありません。 詳しい回答ありがとうございます。
お礼
遅くなってすみません。 ありがとうございました。