- ベストアンサー
エクセルでの数式の表示方法は
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と文字列でなく数式のまま表示し 印刷したいのですが。文字列で表示すれば合計がゼロになります。宜しく
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
次の操作で、ご希望通り動作すると思いますので宜しかったらテストしてみてください。 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
その他の回答 (3)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。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)
(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)下や右に式をいれるセルの余地があるときには便利です。この私製関数はどのシートでも使えます。
補足
早速有難う御座いました。 関数sikiが関数ボックスに作成されてますが、 その保存方法を御願いします。 他のブックを開くと、関数ボックスに入って無いのですが???
- kikero
- ベストアンサー率33% (174/517)
ツール→オプション→表示タブ内の「数式」にチェックすると、数式が表示されます。
お礼
有難う御座いました。 申し訳御座いませんが質問の内容が違っていました。 A B C 合 計 4*5 5*4 3*2 26 この様に表示しAを5*8に変更した場合合計が66に なる様にしたいのですが。。
補足
早速有難う御座いました。 関数StrSumが関数ボックスに作成されていますが その保存方法を御願い致します。 他のブックを開くと関数ボックスに入って無いのですが???