• ベストアンサー

エクセルでの数式の表示方法は

   A  B   C   合 計 1  5*4  4*5  3*2   SUM(A1:C1)  A1-20 B1-20 C1-6と表示されますが、      5*4  4*5  3*2と文字列でなく数式のまま表示し 印刷したいのですが。文字列で表示すれば合計がゼロになります。宜しく

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

次の操作で、ご希望通り動作すると思いますので宜しかったらテストしてみてください。 1.Alt + F11 で VBE(Visual Basic Editor)を開きます。 2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。 3.モジュールウィンドウに下記コード(12行)をコピーして貼り付けます。 4.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。 5.メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を  「中」にして[OK]します。 これでユーザ定義関数 StrSum が使用出来ます。 この関数の使い方は、StrSum(セル範囲) です。 例えば、A1に4*5、B1に5*4、C1に3*2 が入力してあるとき、=StrSum(A1:C1) で 46 が 表示されます。 また、A1を 5*8 に変更すると 66 に変わります。 指定した範囲内に「計算式」と「数値」以外がある場合とか、0で除算した式など 演算不能の式が含まれるときは、#VALUE! になります。 これで如何でしょうか。 Function StrSum(R As Range) Dim Rng As Range Dim Ret As Double For Each Rng In R   If IsNumeric(Rng) Then     Ret = Ret + Rng.Value   Else     Ret = Ret + Evaluate(Rng.Value)   End If Next Rng StrSum = Ret End Function

oyaji-yasuo
質問者

補足

早速有難う御座いました。 関数StrSumが関数ボックスに作成されていますが その保存方法を御願い致します。 他のブックを開くと関数ボックスに入って無いのですが???

その他の回答 (3)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

こんにちは。maruru01です。 A1:B1が、必ず、「A*B」という書式になっているという前提で、 =SUMPRODUCT(LEFT(A1:C1,FIND("*",A1:C1)-1)*MID(A1:C1,FIND("*",A1:C1)+1,LEN(A1:C1))) で合計が表示されます。

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

(1)ツール-マクロ-VBE (2)VBEの画面が出ますが、挿入-標準モジュールを行って出る白の画面に Function siki(a As Range) siki = a.Formula End Function をコピペします。シート画面に戻って A2セルに=siki(A1)といれ、B2,C2にA2の右下+ハンドルを引っ張って複写します。 A2:D2には =5*4 =4*5 =3*2 =SUM(A1:C1) が入ります。1つづつとか、データのないどのセルでも使えます。 (1)値と共にセルに式を出したい時、(2)下や右に式をいれるセルの余地があるときには便利です。この私製関数はどのシートでも使えます。

oyaji-yasuo
質問者

補足

早速有難う御座いました。 関数sikiが関数ボックスに作成されてますが、 その保存方法を御願いします。 他のブックを開くと、関数ボックスに入って無いのですが???

  • kikero
  • ベストアンサー率33% (174/517)
回答No.1

 ツール→オプション→表示タブ内の「数式」にチェックすると、数式が表示されます。

oyaji-yasuo
質問者

お礼

有難う御座いました。 申し訳御座いませんが質問の内容が違っていました。  A  B  C  合 計  4*5 5*4 3*2   26 この様に表示しAを5*8に変更した場合合計が66に なる様にしたいのですが。。

関連するQ&A