• ベストアンサー

エクセルの入力規則で数式のみ入力可能にするには

エクセル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列には、数式以外入力できないようにしたいのですが、 どうすればよいのでしょうか? どうかお知恵を貸して下さい。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> 入力規則で数式のみ入力可能にする。 一般機能ではできないのではないでしょうか。 次のようなマクロ(拙い表現ですが)で処理するのはいかがでしょう。 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

nikku0175
質問者

お礼

遅くなってすみません。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

普通、関数は (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など。)

nikku0175
質問者

お礼

遅れて申し訳ありません。 詳しい回答ありがとうございます。

関連するQ&A

  • エクセルのVLOOKUP関数の検索値が数式の場合について

    エクセルのVLOOKUP関数に悩んでいます。 どなたかご指導お願いいたします。 *--------------------------* A~F列 すべて書式が時刻です。 A、B列には数式で計算された時刻が入力されており、 C列はA列+B列という計算式がはいっています。 F列に=VLOOKUP(C列、D:E列、2、FALSE)というように C列を検索値とし、D列を参照し、E列にある時刻をF列に 設定したいのですが、結果が#N/Aになります。 例えばA,B列が数式ではなく入力した値であれば 検索値であるC列がA列+B列 でも結果はOKでした。 検索値は数式セル同士を足し算した数式は設定不可能なのでしょうか?

  • 《エクセル》入力規則について

    いつもお世話になります。 エクセルの列に、入力規則で打ち込めるデータを限定したいのですが、 セルA1の値が"あ"なら、セルB1には"A"・"B"・"C"のみ入力できる セルA2の値が"い"なら、セルB2には"D"・"E"・"F"のみ入力できる のようなことは可能でしょうか。 また、 A1が"あ"B1が"A"の場合は、C1には"い"・"ろ"・"は"のみが入力できる などということも出来ますでしょうか。 ご存知の方がいらっしゃったらお手数ですが宜しくお願い致します。

  • エクセルで数式をコピーしたときに..

    このような表があります。 ....A......B.......C......D 1 ........ 100 200 300 2 100 3 200 4 300 縦×横の表を作成したいのですが、 B2を=B1*A2と入力します。 そしてこの数式をC3にコピーするとC2*B3になってしまいます。 これをコピーした時に、C1*C3にしたいのですが、 横軸はいつも1の行、縦軸はいつもAの列になるように 数式のコピーはできないでしょうか?   

  • EXCEL入力規則選択 → 文字表示 or 入力可

    EXCEL2003で表を作成しています。 B列に入力規則を使い、「イ」または「ロ」が選べるようにリストを作ってあります。 B列(B3)のセルで 「イ」 を選ぶと、D列(D3)には「A」、E列(E3)には「0000」、F列「-」を表示させるようにし、B列(B3)のセルに 「ロ」 を選ぶと、D列(D3)、E列(E3)、F列(F3)に任意の文字を入力できるようにしたいのです。 以下、B4、B5、、、、と続いていっても、D4、E4、F4. D5、E5、F5・・・と対応していくような表にしたいのです。 関数でも、マクロでも何でもかまいません。できるだけ、簡単な方法を教えていただければと思います。よろしくお願いします。

  • エクセル2010で、数式を貼り付けたい

      A     B    C     D 1 商品名  単価  購入数  合計 2 りんご   100  20     2000 (数式:B2*C2) 3 みかん   80  10     800 (数式:B3*C3) という表があります。 E1に、D1(とE2にD2)の数式を、コピペで貼り付ける方法内でしょうか。   A     B    C     D    E 1 商品名  単価  購入数  合計 数式情報 2 りんご   100  20     2000 B2*C2 3 みかん   80  10     800  B3*C3 どうしても、Dの数式をコピーして、Eに貼り付けても結果の合計が表示されてしまいます。 (一度、C1コピー⇒メモ帳に貼り付け⇒エクセルにコピーも考えましたが、  エクセルに貼り付けた時点で、2000の結果が入りました・・・。) 手で入力して、Concatしてもいいのですが、 もし、コピペですむなら、コピペで解決したいのです。 どなたか解決方法をご存知の方がいらっしゃいましたら ご教授お願いします。

  • Excelの入力式について

    Excelの入力式について教えてください。 たとえば、A1セル~F1セルに数値が入っていて、G1セルA1+B1の値、H列にC1+D1の値 I列にE1+F1の値としたい場合、 G1セルに数式を入れてH列にコピーするとB1+C1になってしまいます。 上手くやる方法はないのでしょうか。 1列ずつわざわざ空白列を作るのは嫌ですし、たくさんあったら数式を打ち込むのも大変です。。。

  • エクセル 配列数式+ワイルドカードの使い方

    以下のように、列A,BにそれぞれA,B,Cまた、D,E,Fで始まるデータが存在します。 そのデータ数をサマリーするテーブルを列C-列Fに作成しようとしております。 たとえば、列D,2行目の???には、列AはAで始まり、かつ列BはDで始まるデータの数を数えたいと思ってます。 "???"の列に記述すべき数式を教えていただけないでしょうか? -----データ------------- --------サマリーテーブル---- 列A 列B 列C 列D 列E 列F 1 ABC DDD D* E* F* 2 ABB DFE A* ??? ??? ??? 3 AAB EFF B* ??? ??? ??? 4 CBB FGH C* ??? ??? ??? 5 BAC EGG 6 CAD FFF 7 BBB DGD 8 BCB DGG

  • EXCELの数式のコピーについて

    幼稚な質問ですいませんが、どなたか助けてください。 罫線を壊さずに数式だけをコピーする方法を知りたいのです。  1.EXCELで表を作成しました。  2.罫線も数種類の線を使って作成。  3.B列、C列には既に数値は入力済み。  4.最後に    D2=C2-B2   といった簡単な数式を入れました。  5.20行くらいの行数があるためD2の計算式を下部方向へコピーす  ると・・・ 折角作成した罫線が滅茶苦茶になってしまいます。  何とかコピー先の罫線はそのままに数式だけをコピーさせる方法をご享受下さい。

  • エクセル数式の選択。

    (表A)=INDEX(総合見積もり!$E$15:U19,MATCH(D5,総合見積もり!$D$15:$D$19,0),MATCH($E$3,総合見積もり!$E$14:$U$14,0)) (表B)=INDEX(総合見積もり!$E$22:$T$26,MATCH(D5,総合見積もり!$D$22:$D$26,0),MATCH($E$3,総合見積もり!$E$21:$U$21,0)) (表A)(表B)2つの表を元に二通りの数式を作ったのですが。 仮にE3のセルにAと入力すると(表A)の数式、Bと入力すると(表B)の数式を選択する関数又は方法 ありましたら教えて下さい。 IF関数で出来そうなのですがエクセル初心者のため良く分かりません 宜しくお願いします。

  • エクセル2000 同じ文字が入力されている個数を集計する

    A列には1~47の数字が200行まで入力されているものとします。 1 a c f e d 2 b a e d c 2 c d d f b 2 a f c a c ・ ・ ・ 47 d e d a b これときa~fが入力されている個数を次のように表にしたいと思いますが、関数でできますでしょうか。    a b c d e f 1   1 0 1 1 1 1 2   3 2 4 3 1 2

専門家に質問してみよう