• ベストアンサー
  • 困ってます

マクロ 計算式

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

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数506
  • ありがとう数6

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

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

こんばんは。 シートのタブを右クリック、コードの表示で開いたら、以下を貼り付けます。 使い方は、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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • 0以外の平均が知りたい

    エクセルの、AVERAGE関数で、 A行にA1~A5まで、 0 0 100 60 0 B行にB1~B5まで、 100 80 20 20 60 C行にC1~C5まで、 60 20 0 0 40 のとき、 A6に、160÷2=80 B6に、280÷5=56 C6に、120÷3=40 というふうに、 A6・・・80 B6・・・56 C6・・・40 と答えを出したいです。 A6~C6に、どういう計算式を入れたらいいでしょうか?

  • エクセルのマクロ

    セルA1に、a2からa90までの任意の文字を入力した後にマクロを実行します。 セルA1にa7と入力されている時はセルB1にa6と表示され、セルA1にa86と入力されている時はセルB1にa85と表示されるようなマクロを教えてもらいたいのですが。 B1は必ずA1の数字の部分が1つ少なくなるということです。      

  • マクロで計算式に入力

    マクロで計算式を入力するのに 例えばセルA1に『=SUM(B1:C1)』という式を入れる時に Range("A1").Formula = "=SUM(B1:C1)" というコードを書いて処理しています。 しかし『=IF(B1=1,"一です","")』というように文中に『"』があるような式を入力しようとするとエラーが出でしまいます。 &でくくったり色々してみたのですがうまくいきません。 何か方法があるのでしょうか。

その他の回答 (3)

  • 回答No.3

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • こんなマクロを作るには

    マクロ初心者です。 以下のようなことをしたいときにマクロの方法を教えて頂けると助かります。 1)セルA1に、数値を入力。 2)セルB1に、A1の数値を使った複雑な計算を行う。 3)セルC1にある別の既定の数値とB1が同じなるまで、A1の数値を入力し直す。  (例えばA1は、0.1間隔で数値を入力していく) このようなものをマクロで設定したいです。 今はひたすらA1の数値を入力し直して対応しています。 なにとぞよろしくお願いいたします。

  • エクセルマクロでの計算について(2007)

    エクセルマクロ初心者です。 試行錯誤しながら作成しています。 セルB1には直接計算式を入れており(=(480+(A1)*10)/480*I1) その結果次第(70以下)でセルC1に計算結果(=(75-B1)*.48)をいれて 70より大きければセルC1に"-"を入れたいのですが上手く計算してくれません。 この処理を約65個のセルにしようと思っています。(セルの列はバラバラです) どうすればよいかご教示ください。 ちなみに現在作成している文は Private Sub 計算_Click() Worksheets("sheet2").Select If Range("B1").Value <= 70 Then Range("C1").Formula = "=(75 - (B1)) * 0.48" Else: Range("C1").Value = "-" End If End Sub よろしくお願いいたします。

  • 自動的にグラフを作成してくれるExcel VBAの作り方を教えて下さい。

    001,002,003,・・・200というナンバーが B12,C12,D12,・・・??12 に入っているとします。 A13,A14,・・・A6016にはそれぞれ 1,2,3,・・・,6003 というナンバーが入っています。 B13・・・??6016 にはそれぞれのデータが入っているとします。 このデータを使って、 x軸を「A13,A14,・・・A6016」y軸を「B13・・・B6016、C13・・・C6016、・・」 として200個の散布図グラフを作成したいのですが、これを自動でやってくれる マクロを教えて下さい。 よろしくお願い致します。

  • EXCELでの時間計算について教えてください。

    EXCELでの時間計算について教えてください。 現在時刻が PM15:10だとして、 セルA1に =Now() セルB1に ="15:00:00" セルC1に =A1-B1 と入力すると、 セルC1には期待通りの"0:10:27"(A1とB1の時間差が10分)という結果が返ってきます。 それでセルD1に、差が10分以上であれば"○"を付けたいのですが、どのように式を書けばよいのでしょうか? よろしくお願いします。

  • ひとつ飛びの合計の数式を記述するマクロ

    (エクセルのマクロにて) セルB1からB6を選択しているとします。 ひとつ飛びの合計を求める式=B2+B4+B6をマクロで作成し、A1セルに記述するマクロはどうすれば実現できるのでしょうか? もちろんC2からC10を選択している時は、=C3+C5+C7+C9 という式をA1セルに記述するものとします。 お手数ですが、お分かりの方お教えください。

  • EXCEL シート保護するとマクロが正常動作しない

    こんにちは。 よく使うコピー&貼り付けを、マクロにして、ボタンの設定をしました。 他人に計算式をいじられたくないので、シート保護をかけています。 が、そのマクロを一度使うと、計算式が正常にコピーされません。 そこ自体の計算式は非常に単純なものなのですが・・・ 例) A1 B1+C1 A3 B3+C3 A5 B5+C5 (上下でセルを結合させています) A20 B20C+C20 (A21とA22でセルを結合させています) マクロ 1)「A1:A6」コピー&値貼り付け&コピー 2)A8:A13 貼り付け ※上記もそれぞれ上下2セルを結合しています。 3)「A20」コピー 4)「A1:A6」へ貼り付け ※消えた計算式を復活 これだけのことです。 ですが、シート保護を外すと何度も繰り返し使えますが、 保護した途端一度きりになってしまいます。 一体に何に問題があるのでしょうか?

  • エクセル2000のマクロについて教えて下さい。

    いつも お世話になっております。 マクロにはこだわってはいませんが、 a1:a1000 まで名称があります。 セルb1に一部の名前を入力したら a1:a1000の間に同じ名称があった 場合c1に表示できないでしょうか? ただし 複数があった場合はc1:c・・・・で表示したいので マクロではないとできないかなと思っています。 すみませんがよろしくお願いします。

  • マクロの相対参照、絶対参照

    マクロを使い始めたばかりなんですけど 相対参照と絶対参照で困ってます 任意のセル(A1とする)を選択しておいてマクロの開始 B1のセルをコピー 最初のセル(A1)に貼り付け としたいんですけど B1のセルをコピー、を絶対参照にして 最初のセル(A1)に貼り付け、を相対参照にしてマクロに記録しました そのマクロをC1で使うと A1のセルにB1のセルを貼り付けてしまいます C1でマクロを使えばB1のセルをC1に貼り付けるようにはどうすればいいのでしょう 分かりにくい説明で申し訳ありません

  • エクセルの計算式について

    こんにちは。 今エクセル2010を使っています。やりたいことがあるのですがどうやっていいかわからず困っています。 A1のセルに40と入れるとB1に75、C1に10、D1に5。 で、同じくA1に今度は38と入れるとB1に60、C1に5、D1に10というように A1に入れる数値によってB1・C1・D1の数値も変わってくるようにしたいんです。 40と入れたら75・10・5、38なら60・5・10とパターン化された数値が入るのですが このパターンが20通りぐらいあります。 こういうのってマクロになるんでしょうか。初心者なのでマクロはよくわからなくって・・・。 詳しい方いらしたら教えていただけないでしょうか。 よろしくお願いいたします。

  • エクセルについて

    エクセルについて   A  B 1 あ  9   2 い  2  3 え  1 4 お  5 5 あ  7 6 あ  2 7 う  4 8 え  3 「A1」「A5」「A6」セルの「あ」に対する「B1」「B5」「B6」セルの 合計(ここでは18)を、別セル(例えば「C1」セル)に自動的に計算するには どうしたらいいんでしょうか?