• ベストアンサー

マクロ 計算式

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

  • V_max
  • お礼率100% (16/16)

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

  • ベストアンサー
  • 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の欄に、今までは”円”の計算だけだったのですが、その他の文字を入れることもあるようになり、関数では難しくなりました。

関連するQ&A

  • エクセルマクロでの計算について(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 よろしくお願いいたします。

  • エクセルマクロで計算結果の値だけをコピーしたい

    エクセルのマクロで計算結果の値だけをコピーする方法は無いでしょうか? 私が遣りたい事は,大雑把に言えば以下の動作がしたいんです. しかし,セルに計算式が入ってしまい計算結果が残らなくて困っています. A,B,Cはセルとする A,Bを作業領域,Cを結果領域として For i = 1 to 10 A=i B=i+1 C=A+B Cの行+1 Next i

  • エクセルで計算式の答えを・・・。

    エクセルで計算式で計算した答えの数字だけを別のシートにコピーしたいのです。 普通にコピーして貼り付けすると、計算式ごとコピーされるので計算結果が違ってしまいます。 例えば、A1に10 B1に5 C1に(A1*B1)と計算している場合 他のシートのひとつのセルに「50」と数字だけを入れたいのです。 このようなことが出来るでしょうか? この説明でわかりにくければ補足します。 エクセルに詳しくないので困っています。どなたか教えてください。よろしくお願いします。

  • エクセル2010のマクロについての質問です。

    エクセルにてマクロを組もうと色々調べているのですが、 どうしてもわからないため教えていただきたいことがあります。 現在、マクロを実行すると固有の文字をアクティブセルに挿入するというマクロを作成しました。 このマクロを少し改造したいのですが、A1とB1に=のものが入っている行の特定の列のセルに固有の文字を挿入するという風にしたいです。 例えば、Aの列にはA1には1、A2には2という風に順に10間での数字が入っていて、 B1には9が入っている場合、C9のセルに固有の文字を挿入するという感じです。 B1を7に変えた場合、C7に固有の文字が挿入されるという感じにしたいです。 質問の仕方が下手でわかりにくいかも知れませんがお知恵をお貸しください。 よろしくお願いします。

  • Excelマクロ 入力の有無を判定するマクロを組みたい

    はじめまして。 マクロの初心者です。 エクセルマクロを利用して、セルに何か入力(文字でも数値でも)がある場合の判定をしたいのですが、うまくいきません。 具体的には、 ・(A1セルが空白で)B1からC10セル(10個のセル)のいずれかのセルに何か入力された場合 → D1セルに"○"を出力。 ・(A1セルが空白で)B1からC10セル(10個のセル)のいずれかのセルに何も入力がない場合 → D1セルは"(空白)"。 ・但し、大前提として、A1セルに"×"が入力されている場合 → D1セルに"×"を出力。 (B1からC10セル(10個のセル)のいずれかのセルに何か入力されている場合でも、A1セルが"×"ならばD1セルは"×"とする) としたうえで、同様の判定を ・A11セルおよびB11からC20を判定しD11セルに結果を出力、 ・A21セルおよびB21からC30を判定しD21セルに結果を出力、 … と繰り返して、A100セルまで実行させたいと考えています。 (D1、D11、D21、D31、D41、D51、D61、D71、D81、D91の10個のセルに"○"、"×"、"(空白)"の結果を出力したいです) 過去の投稿や解説書などを参照にしているのですが、なにぶん本当に初心者のためうまくいきません、、、 どなたかお力添えをお願いします。

  • マクロの実行について

    エクセルで料金計算をする、セル1Aに開始時刻を入力しセル1Bに終了時刻を入力するとセル1Cに料金が出力されるというマクロファイルを作りました。 現状1Aと1Bを入力しマクロ実行のスイッチを押して1Cを出力する、というやり方をしているのですが、スイッチを押す手間を省くために、1Aを入力しておいて1Bを入力したらスイッチを押さなくても自動的に1Cが出力されるようにしたいと考えています。 そのような設定をすることはできますか? ご回答よろしくお願い致します。

  • VBAで、excelファイルのマクロを実行したら、特定のフォルダのファ

    VBAで、excelファイルのマクロを実行したら、特定のフォルダのファイルの特定セルを確認し、その結果を反映する、というマクロを組みたいと思っています。 具体的には下記のマクロを組みたいと思っています。 ------------------------------------------------------ (1)マクロを組むファイル【worksheet】にてマクロを実行する (2)特定のフォルダのファイルのA1、A2、A3、A4の全てに”OK”という文字が入っているかを確認 ・C:\excel\1番\kakunin_1.xls にあるkakunin.xlsの、A1セルに”OK”という文字が入っていたら次はA2、A3、A4の順序で 確認する。 ・このとき、A1にOKと入っていて、A2には入っていなかった場合は、A2という文字を、【worksheet】のB1セルに結果を表示する ようにする。 ・特定のフォルダの構成は下記 C:\excel\1番\kakunin_1.xls |--\2番\kakunin_2.xls |--\3番\kakunin_3.xls ・上記の処理を、1番フォルダの【kakunin_1.xls】で実行し、【worksheet】のB1セルに結果を表示。 2番フォルダの【kakunin_2.xls】で実行し、【worksheet】のB2セルに結果を表示。 3番フォルダの【kakunin_3.xls】で実行し、【worksheet】のB3セルに結果を表示。 ------------------------------------------------------ VBAどころかプログラミング自体が初めてなので、例えば引数が何かも一々考えて1文ずつ読み込まなければいけない状態です。。 どなたかこの無知な自分に力を貸して頂けないでしょうか?

  • エクセルで計算結果の最適を簡単にもとめたい。

    エクセルの表を使い多くの変数で計算するとき、計算結果を ある値に近つけたいときがあります。 たとえばA1セル、A2セル、・・・・・・・と変数が入っていて、その 計算結果をG1セルに入っている。 G1セルの答えが100になるA1セルの値は、いくつか?とか」です。 いまのやり方だと。まず、A1セルに適当に2を入れてみる。次に A1セルに3を入れてみる。そうすると2の方が近いので、今度は、 2.2をいれる、とかしていったりきたりして、2.33とかの答えを 求めています。 他の方法として、計算の表をたとえば10個作って、A1セルとG1セル の10個の値を表にして、10個分まとめて計算させる」とかが考えられ ますがこれも表がおおきいとあまり賢い方法とは思えません。 マクロを使わずにいい方法があれば教えてください。 マクロを使わないとできないなら、マクロの使い方から教えて いただきたく。(たとえばここのサイトを見ればいいよ」とかでも OKです。

  • 配列数式を用いたエクセルマクロの使い方

    セルA1に「=SUM((A1:A12=5)*(B1:B12=""A"")*C1:C12)」という風に数式を表示形式を文字列として入れておき、他のセルに、この計算結果を入れるたいのですが、マクロでどのようにすればいいか、ご存知のかたがいらっしゃいましたら教えてください。 ちなみに、使用したい数式(セルA1に入れているもの)は配列数式です。

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

    セルAとBの合計をセルCに表示させます。この時、AとBの合計が規定値(例えば100など)を越えた場合、セルCには計算結果ではなく「オーバー」などの文字を表示させたいのですが、どうすればよいでしょうか?

専門家に質問してみよう