ここから本文です

エクセルで参照先の数字を残したまま数式を表示したいのですが・・・ タイトル...

aki********さん

2017/5/2118:53:02

エクセルで参照先の数字を残したまま数式を表示したいのですが・・・

タイトル通りです。検索方法が悪いのかマッチするサイトが見当たらないので質問させていただきます。

A1に"100”、B1に”50”と入力し、C1に”=A1+B1”と入力した時、C1には”150”と表示されますが、C1に"=100+50"と表示させることは可能でしょうか。
数式を文字列として"=A1+B1"と表示させることができる、との解説ページなどはよく見るのですが、参照先の数字を残したまま計算はせずにおきたいのです。

表現が稚拙で分かりづらいとは思いますが、どなたか分かる方がいらっしゃればご回答お願いいたします。

補足本文では簡略化いたしましたが、可能な限り詳しくということで補足いたします。
目的としては設計した図面の数量計算表を作成することでして、下記リンクの数式部分が「B○」で構成されていますが、その部分を参照先の数字にしたうえで数式の形を維持したいと考えています。

http://i.imgur.com/kF8yD2g.png

例えばE2には「=B2*B3*B4」と表記されていますが、「=10*20*30」と表記させておきたいのです。
これをどうにか解決できる手立てはないでしょうか。もしご存知の方法があれば何卒ご教示願います。

閲覧数:
228
回答数:
6
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tai********さん

2017/5/2122:46:34

検索方法が悪いのではなく方法がないのと需要がないのでマッチするサイトがない、ということです。

C1に”=A1+B1”と入力した時C1に"=100+50"と表示させるのは簡単ですが
C1に”=SUM(A1:B1)”と入力されたらアウトです。常にC1セルを監視して何を入力するのか見張っててあわてて対応を変化させるのはエクセルらしくないと思うのですが。

演算子は+だけ、というローカルルールを作っても一向に構いませんが。

  • 質問者

    aki********さん

    2017/5/2221:42:48

    なるほど、需要がないということなのですね。
    設計でチェックを受ける際に他人に計算課程をチェックしやすくする、という目的で欲しかったのですが、残念です。
    回答ありがとうございました。

  • その他の返信(2件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2017/5/24 21:14:35

皆さま大変丁寧に回答してくださって、勉強になりました。
どの方を選ぶか苦慮したのですが、職場の現況でそのまま使用できる回答をくださったtaihenda3356さんをBAに選ばせていただきました。
今後とも勉強は続けていきますが、また自身で解決できないような疑問ができた際は何卒よろしくお願い申し上げます。
本当にありがとうございました。

ベストアンサー以外の回答

1〜5件/5件中

並び替え:回答日時の
新しい順
|古い順

yas********さん

2017/5/2122:01:12

はじめまして~

イベントマクロです。
演算子が「+-*/」でも対応できます。
下記の通りコードをコピペすると、C列の数式を入力時に動作します。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim myStr As String
Dim myWd As String
Dim myNum1 As Long
Dim myNum2 As Long
If Target.Count > 1 Or Target = "" Then Exit Sub
If Target.Column = 3 Then
If Target.HasFormula Then
myStr = Target.Formula
If InStr(myStr, "+") Then myWd = "+"
If InStr(myStr, "-") Then myWd = "-"
If InStr(myStr, "*") Then myWd = "*"
If InStr(myStr, "/") Then myWd = "/"
If InStr(Target.Formula, myStr) > 0 Then
myNum1 = Range(Mid(myStr, 2, InStr(myStr, myWd) - 2))
myNum2 = Range(Right(myStr, Len(Target.Formula) - InStr(myStr, myWd)))
Application.EnableEvents = False
Target = "'=" & myNum1 & myWd & myNum2
Application.EnableEvents = True
End If
End If
End If
End Sub

※シートモジュールへコピペ
①上記のコードを全て選択してコピー。
②そのワークシートの「シート名」のあるタブ内で右クリックして
③出てきたメニューの「コードの表示」をクリック
④右側の大きな窓のカーソルがテカテカしているところに「貼り付け」
⑤もうこの画面はいらないので、右上の「×」で消します。
⑥その後、C列に数式を入力すると動作します。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

mr_********さん

2017/5/2121:50:54

この様な事でしょうか?

="="&A1&"+"&B1

この様な事でしょうか?...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

was********さん

2017/5/2119:57:18

A1セルの100とB1セルの50を使って、
=100+50
と言う文字列を作るのですね。
="="&A1&"+"&B1

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

kxk********さん

2017/5/2119:27:49

質問者様がお望みの機能とは少し違いますが:

計算式のあるC1セルをクリック → リボンの「数式」をクリック → 「数式の検証」をクリック

が役に立ちそうな気がします。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

ion********さん

2017/5/2119:03:46

>A1に"100”、B1に”50”と入力し、C1に”=A1+B1”と入力した時、C1には”150”と表示されますが、C1に"=100+50"と表示させることは可能でしょうか。

できません。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる