• ベストアンサー

マクロ 計算式

エクセルでマクロを使い、計算式をと結果を表示したいのですが、教えてください。 A1に 200   B1に 10  C1でA1*B1の結果を出し、且つ、結果に円という文字をつける場合のマクロの書き方をお願いします この状態では答えは 200×10 で 2000としか出ないのと、他のセルで実行させた場合でも、例えばA6に 200   B6に 10とした場合、 C6で答えが欲しいのです。 説明がへたくそですみません お解りの方、お願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 シートのタブを右クリック、コードの表示で開いたら、以下を貼り付けます。 使い方は、C列をダブルクリックします。A列、B列に数字が入っていれば、同行の計算式と円が入ります。 片方のセルが空の状態でダブルクリックすると、数式も円も消えます。 一括で入れるなら、別のマクロになります。 '---------------------------------------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)   Cancel = True   If Target.Column <> 3 Then Exit Sub 'C列   If (IsNumeric(Target.Offset(, -2)) And IsNumeric(Target.Offset(, -1))) And _     Not (IsEmpty(Target.Offset(, -2)) Or IsEmpty(Target.Offset(, -1))) Then     Target.FormulaLocal = "=RC[-2]*RC[-1]"     Target.NumberFormatLocal = "#,##0円"   Else     Target.Clear   End If End Sub

V_max
質問者

お礼

ありがとうございます うまくいきました

その他の回答 (3)

回答No.3

Range("C1").Value = Range("A1").Value * Range("B1").Value & "円" とか? C列のほうは、使うイベントが不明ですが、 Activecell.Rows.Row で列番号は出せます。どうですか?

V_max
質問者

お礼

ありがとうございます とりあえず、試してみます

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

質問が判りにくいですね。 C1に式と結果と単位(円)を表示したいと言う事でしょうか? 例:A1に「200」、B1に「10」と入っている場合、C1に「200×10=2000円」  通常この程度ではマクロは使いません。演算式を使います。 C1に以下の式を入れて見てください =A1&"×"&B1&"="&A1*B1&"円" C1をコピーしてC6に貼り付ければ、A5とB6を掛けた結果になります。

V_max
質問者

お礼

ありがとうございます 現在は、関数を使用していますが、Cの欄に、今までは”円”の計算だけだったのですが、その他の文字を入れることもあるようになり、関数では難しくなりました。

  • kkaamm
  • ベストアンサー率43% (45/103)
回答No.1

関数の方が簡単だと思います。 =CONCATENATE(A1*B1,"円") もしくは =YEN(A1*B1,0) あとはオートフィルで必要なところまでコピーをすれば使えます。

V_max
質問者

お礼

ありがとうございます 現在は、関数を使用していますが、Cの欄に、今までは”円”の計算だけだったのですが、その他の文字を入れることもあるようになり、関数では難しくなりました。