趣味のエクセルマクロ&数字選択式宝くじ

ナンバーズ4などの数字選択式宝くじデータ分析用の自作マクロおよびナンバーズ4などの各種データリストなどをブログにしています。

マクロ作成方法15(自動記録・計算)

ABの数字を元に行での計算します。6+2=8 6-2=4 6x2=12 6÷2=3
6x2=12 6÷2=3はそれぞれ6*2=12 6/2=3と計算します。


(表1)AB列を元に自動記録マクロで計算をして見ました。
よく見れば分かりますが何だか分かりにくいです。


Sub Macro1() ’(表1)全部の行を同じように計算


    Range("C3").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]" ’たし算
    Range("D3").Select
    ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-2]" ’引き算
    Range("E3").Select
    ActiveCell.FormulaR1C1 = "=RC[-4]*RC[-3]" ’かけ算
    Range("F3").Select
    ActiveCell.FormulaR1C1 = "=RC[-5]/RC[-4]" ’割り算
    Range("C4").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
    Range("D4").Select
    ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-2]"
    Range("E4").Select
    ActiveCell.FormulaR1C1 = "=RC[-4]*RC[-3]"
    Range("F4").Select
    ActiveCell.FormulaR1C1 = "=RC[-5]/RC[-4]"
    Range("C5").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
    Range("D5").Select
    ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-2]"
    Range("E5").Select
    ActiveCell.FormulaR1C1 = "=RC[-4]*RC[-3]"
    Range("F5").Select
    ActiveCell.FormulaR1C1 = "=RC[-5]/RC[-4]"
    Range("C6").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
    Range("D6").Select
    ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-2]"
    Range("E6").Select
    ActiveCell.FormulaR1C1 = "=RC[-4]*RC[-3]"
    Range("F6").Select
    ActiveCell.FormulaR1C1 = "=RC[-5]/RC[-4]"
    Range("F7").Select
End Sub


Sub Macro2() ’(表2)最初の行だけ計算 後はコピー


    Range("J3").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
    Range("K3").Select
    ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-2]"
    Range("L3").Select
    ActiveCell.FormulaR1C1 = "=RC[-4]*RC[-3]"
    Range("M3").Select
    ActiveCell.FormulaR1C1 = "=RC[-5]/RC[-4]"
    Range("J3:M3").Select
    Selection.AutoFill Destination:=Range("J3:M6"), Type:=xlFillDefault
    Range("J3:M6").Select
    Range("O13").Select
End Sub


自動記録でないのが分かりやすいですw


   ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"は下の様に手入力で


 Cells(3,3)=Cells(3,1)+Cells(3,2)になります。


 関数では C3に=A3+B3の式になります。


 Cells(3,1)は1列目で3行目を表します。Cells(行,列)ですね。


(表1)の3行目の各々の計算は
   Cells(3,3)=Cells(3,1)+Cells(3,2)
   Cells(3,4)=Cells(3,1)-Cells(3,2)
   Cells(3,5)=Cells(3,1)*Cells(3,2)
   Cells(3,6)=Cells(3,1)/Cells(3,2)


 4行目以降の各々の計算は行の部分が4、5、6に成りますね。


(表2)のコピーはマクロで考えると色々方法はあると思います。


 ・最初の行を下の複数行にコピー貼り付けする
 ・FOR NEXT や DO UNTILを使って計算する
  その際はCells(3,3)の数字の部分を変数に変えて変化に対応するようにします。