- 締切済み
エクセル 計算式と答え
エクセルで計算書を作成しています。成果物に計算式とその解の表記が必要です。 現在は計算式表記のセルにも解のセルにも"="をつけるかつけないかの違いだけで同じ内容を入力していますがナンセンスに感じています。 他のセルに表記さらている計算式を計算するマクロでいいものがあれば教えてください。 データも納品物であるので先方のPC環境に影響しないようアドイン関数は使用したくありません。 四則演算ができればよいのですが出来るものな"π"(パイ)を"PI()"と認識できたらなおよいです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
#2でーす。 >> 私の質問がまちがっておりました。申し訳ありません。 いえいえ,私も間違ったことというか言い違いはしょっちゅうします。気にされないでください。 うーん,しかし難しい。 #1さんのおっしゃっているように, B列に「=数式」を入力して,それをA列にコピー。 A列の "=" を "" に置換。 "π" を "PI()" に置換。 くらいしか思い浮かびません。 結局,関数では何もひらめきませんでした。
これでよろしいでしょうか。 --------------------------- Sub test() Dim Tmp As Range For Each Tmp In Selection.Cells If Tmp <> "" Then Tmp.Offset(0, 1) = "=" & Tmp Tmp.Offset(0, 1).Replace What:="π", Replacement:="PI()" End If Next End Sub --------------------------- 汎用性を高めるために,特定の行や列は指定していません。 使い方は, 「数式にしたい("="をつけたい)セルを選択」→「マクロ実行」 これだけです。 選択した右隣のセルに,「 "=" がついたもの」つまり「計算結果」が表示されます。 セルは列(縦)方向にであれば,複数選択可です。つまり範囲で選択できます。 右隣ではない部分に計算結果を出したい場合は Tmp.Offset(0, 1) の0や1を替えてください。 ( )内は,(行,列) になっています。つまり選択セルからの相対座標です。 一応,空白セルは無視するようにはしてますが, 環境によっては,ひょっとしたら, 列や行全体を選択してマクロを実行した場合,空白行まで判別しようとするため, マクロが止まらなくなることがあるかもしれません。 一応,こちらではそのようなことは起こりませんでした。 もしマクロが止まらなくなった場合はあわてず「Esc」キーを押してください。 マクロの実行は止まります。 (開発環境 Windows2000 Excel2002)
- hakutyan
- ベストアンサー率44% (23/52)
質問内容がよく分からないので、間違ってたらすみません。 検索置換で、"="を飛ばすことではいけないのでしょうか?
お礼
さっそくの回答ありがとうございました。 私の質問のしかたが間違っておりました。申し訳ありません。A1に計算式を表示しB1に解を表示させるようなB1で使う関数がほしかったのです。 機会があればまたお願いいたします。
お礼
さっそくの回答ありがとうございました。 しかしながら私の質問がまちがっておりました。申し訳ありません。求めていたものはマクロではなく、ユーザー関数でした。つまりA1に"="なしの計算式を表記しB1に"=****(A1)"で解を表記させるというものです。 お願いしづらくなってしまいましたが機会があればお教えください。