• ベストアンサー

マクロで終端までの計算方法は・・・

マクロ初心者です。 以下のような計算をマクロで終端まで行なう場合です。 A  B  C 2  1 4  3 7  1 5  2 ・・・ C列に A/B を表示させるにはどうすればいいのでしょうか? また、A+B の時はどうするのでしょうか? 以上、よろしくお願いします。

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

  • ベストアンサー
  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.1

いろいろありますが、というよりただこれだけなら計算式を入れてCopyして、そのままクリップボード経由で値貼付けが一番早い。 これだけではないのでしょうからオーソドックスにマクロで最後の列まで計算すると Sub dd() Dim Lastrow As Long Dim i As Long Lastrow = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To Lastrow Cells(i, 3) = Cells(i, 1) / Cells(i, 2) '#1 計算するところ Next End Sub #1 cells(i,3)=cells(i,1)+cells(i,2) '足し算 または cells(i,3).formula="=RC[-2]/RC[-1]"  式を入れる

0pus0ne
質問者

お礼

参考になりました。ありがとうございます。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えば次のようなマクロでもよいでしょう。 Sub 計算() Dim RowPos As Integer RowPos = 0 Do RowPos = RowPos + 1 If Range("A" & RowPos) = "" Then Exit Sub Range("C" & RowPos) = Range("A" & RowPos).Value / Range("B" & RowPos).Value '足し算では/を+にした式を作る。 Loop Until Range("A" & RowPos) = "" End Sub

関連するQ&A

  • マクロ 計算式

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

  • エクセルの表計算の式を教えてください。

    エクセル初心者です。 A列の数字が1以上10以下の場合に、B列に3・C列に0と表示。 A列の数字が10以上15以下の場合に、B列に4・C列に0と表示。 A列の数字が15以上20以下の場合に、B列に5・C列に8と表示。 この場合は、B列とC列にはどのような数式を入力するといいのでしょうか?

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

    エクセル2007の計算についてですが、A列に100個データがあり、B列とC列にそれぞれ1個データがあるとします。そこで、D列のD1にA1*B1-C1の計算結果を表示させました。次に、D2以下も同様の計算をするために、D1のセルを選択して、矢印無しの十字キーを下に伸ばしてD2にA2*B1-C1、D3にA3*B1-C1・・・、D100にA100*B1-C1の結果を表示させようとすると、100個分の計算結果は表示できるのですが、D2はA2*B2-C2、D3はA3*B3-C3・・・というように、B列とC列も一つずつ下がって計算されてしまいます。この場合、B列とC列には1個しかデータがない(B1に一個、C1に一個)ため、D2以下の計算結果は0になります。B列とC列を下げずに、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 よろしくお願いいたします。

  • エクセルマクロ中の再計算について

    A1 -> 11(初期値) A2 -> if(A1>10,1,2) 上記の様に表にデータが入っている場合に以下のマクロを実行した時に再計算されずにマクロの処理が進み遅くなって再計算が実行されるため正確なマクロが実行されないのですが、どうしたら確実に再計算を実行したあとにマクロが処理を継続するようにさせる事が出来るのでしょうか、よろしくお願いします。なお、実際のマクロ及び関数は違います。 Range("A1").value = 1 Calculate if Range("A2").value = 1 then  msgbox "OK" endif end 以上の場合に『OK』メッセージが表示されるものと理解していますが、表示されずに終了してしまいます。

  • エクセルで金額を計算する方法

    エクセルのA列、B列にポイント数を入力し、C列に金額が表示されるように計算式を設定したいです。 <条件> ①A列+B列の合計が3ポイントまでの場合 2,000円×(A列+B列)で計算 ②A列+B列の合計が4ポイント以上の場合 3ポイントまでを2,000円×3で計算 4ポイントからは2,500円×((A列+B列)-3ポイント)で計算 例)A列→4ポイント、B列→2ポイントの場合 2,000円×3ポイント=6,000円 2,500円×3ポイント=7,500円 C列→6,000円+7,500円=13,500円を表示

  • エクセルのマクロ

    教えてください。   A     B   C 1 部品番号  ○   済印 2 111111   ○   済 3 222222   ○   済 4 333333   ○ という表があるとします。 B列にマクロのボタンを作っておき、 A列に部品番号を入力したら、マクロのボタンを押して、 C列に済、という字を表示したいのです。 1部品入力するごとに、その表示をさせたいです。 2行目、3行目・・・と一つずつマクロを登録して いく方法は、(マクロについては詳しくないので、マクロの記録、マクロの停止、という方法しかわかりません)入力するデータが100件以上あるため、それもどうかな・・と悩んでいます。超初心者なのですが、何とか完成したいと思っています。 よろしくお願い致します。

  • エクセル計算

    エクセル計算の質問です。 添付画像の表で・・ A列で始業時間、B列で終業時間を入力すると、C列に差し引きの 就業時間を計算します。 そしてD列には、C列の時間によって基本給を変えて表示するように したいと考えています。 具体的には・・ C列の時間が4時間1分以上の場合は、D列の基本給は7,000 C列の時間が4時間以下の場合は、D列の基本給は3,500 A列B列が無記入の場合は、C列とD列は表示ナシとする。 以上を満たす計算式を教えて頂けますでしょうか? 宜しくお願いします。

  • マクロでの集計方法を教えてください

    初歩的な質問です。 『A列に1か0の数値がランダムに入力されています。 この場合にA列の数値0のセルの隣のB列のセルに その上の0までの数値の合計を自動で計算したいのですが。 表現がうまくありませんので下記具体例にて。 セルA1は0、A2~A15までは1、A16は0の数値が入力されているとします。 (A17以下にも0と1がランダムに入力されています) この時セルB16にA2~A16までの合計を計算するマクロです。 (同様に次のA列0までの合計をB列に計算します) 自分なりに色々考えましたが出来ませんでした。 なにとぞよろしくお願いします。

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

    エクセルの計算式について教えて下さい。以下の表があります。 a列とb列は日ごとに変化します。c列は、a/bで計算されます。d列は、bx10をaから引いた値です。e列は前日のeと当日のeの差を表示しています。 x1列は、e列が10以上ならばSを表示する条件式で値を出しています。x2列は、0以下ならばBを表示する条件式で値を出しています。 h列の計算は、x1とx2でBが表示された場合、例えばa列の1/12の18620から1/11の18830を引く計算をし、b列の1/11の1682から1654を引く計算をして、それぞれの解を足します。 また、同様にx1とx2でSが表示された場合には、下記の表のa列1/12の18620から1/21の18760を引き、b列の1/21の1618から1654を引き、それぞれの解を足します。 上記に説明した、それぞれの計算式を教えて下さい。 また、x1とx2は、それぞれaやbの値から導き出される式で日々表示が変わります。ただ、以下の表のようにx1列のように、Sの表示が連続して表示されます。これを、1度Sが表示されると、次の行からはSが表示されないようにする計算式を教えて下さい。 すみません、よろしくご教示下さい。 date      a      b      c  d e x1 x2  h 2000/1/11 18830 1682.0 11.20 2010 -190 B   2000/1/12 18620 1654.0 11.26 2080 70 S 70,000 2000/1/13 18920 1673.0 11.31 2190 110 S 2000/1/14 18850 1654.0 11.40 2310 120 S 2000/1/17 19300 1680.0 11.49 2500 190 S 2000/1/18 19150 1662.0 11.52 2530 30 2000/1/19 18930 1634.0 11.59 2590 60 2000/1/20 19060 1640.0 11.62 2660 70 S 2000/1/21 18760 1618.0 11.59 2580 -80 B -220,000

専門家に質問してみよう