• ベストアンサー

A2からA16までの足し算マクロ

エクセルVBA初心者です。 初心者のため、うまく質問できるか分かりませんが、よろしくお願いします。 タイトルのように A2からA16に入っている値を全て足して、その値を別シートのB2セルに書き出す、というマクロを教えてほしいんです。 別シートに書き出すマクロは分かるのですが、足し算が分からないんです。 A2+A3+・・・ とやってもいいんでしょうけど、凄く大量で1つ1つ書けないんです。 まとめて、ここからここまで全部足す!みたいなマクロはないでしょうか><; 大雑把な質問ですみません・・・ アドバイスよろしくお願いします。

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

  • ベストアンサー
回答No.1

Option Explicit 'Excelに標準で存在するSUM関数じゃなくてVBAによるマクロだよね? Sub Summation() Dim i As Integer Dim sum As Integer For i = 2 To 16 sum = sum + CInt(Cells(i, 1).Value) Next i Cells(2, 2).Value = CStr(sum) End Sub

yukie0413
質問者

お礼

素早い回答助かります><; そうです。VBAのマクロです! For Next 構文でやろうと思ってたので本当に助かります。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.5

#1の修正 CInt → CDbl

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

マクロの記録を参考にすると、式を埋め込む方式なので Sub Macro1() d = Range("A65536").End(xlUp).Row Range("A" & d + 1).FormulaLocal = "=SUM(A1:A" & d & ")" End Sub ーーー 方法としては (1)各セル繰り返し加算法 (2)WorksheetFunction法 (3)式を埋め込む法 (4)ピボットテーブル法

yukie0413
質問者

お礼

お礼コメント遅くなって申し訳ありません。 分かりやすい説明ありがとうございます。 とても参考になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

ANo.2です。 追加で参考URL。 VBAでワークシート関数を利用するには-Application.WorksheetFunction http://www.relief.jp/itnote/archives/001834.php VBAで使用できるワークシート関数一覧 http://www.relief.jp/itnote/archives/001974.php ワークシート関数を用いた方が楽な場合もありますので。

yukie0413
質問者

お礼

お礼コメント遅くなりました><; ありがとうございました! 無事に完成しました^^; とても参考になりました! ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

例えばこの様な事ですか? Worksheets("Sheet2").Range("B2").Value = _ WorksheetFunction.Sum(Worksheets("Sheet1").Range("A2:A16")) ワークシート関数を用いたVBAのサンプル。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル:シート1のセルA1が0でなければ任意のマクロを実行したい

    エクセルマクロ(VBA)初心者です。よろしくお願いします。 (1)エクセルのsheet1のセルA1の値が”0(ゼロ)”でなければ、そのシート上で任意のマクロを実行し、ゼロであれば実行せずにsheet2へとぶ (2)同じようにsheet2のセルA1がゼロでなければ実効し、ゼロでなければsheet3へとぶ・・・の繰り返し(sheet50まであります。) このようなマクロ(標準モジュール)の書き方を教えてください。 よろしくお願いいたします。

  • エクセルの足し算

    エクセルで四捨五入の計算式を入れたセルどうしを足し算すると1合わなくなってしまいます。 セルAに620が入っていて、セルBにAの値620×167.66四捨五入をした数字を入れ、その結果のセルBの値を3行足し算すると1合わなくなります。 セルBは103,949になり3行足すと311,848になってしまうのです。 どうしたら良いか教えてください。

  • エクセルの足し算の関数について

    エクセルの足し算の設定について質問です。 とてもシンプルな計算式で、あるセルに、仮に =A + B + C という 足し算を設定しようとしています。 Aは、計算結果を入れようとしているセルと同じシートにある別のセルとイコールで結びます。 BとCは、他のシートにあるセルを参照しようとしています。 参照先のセルは、複数のセルを結合したもので、 =B1 + B3 + B5 + B7・・・・といったような少し長めの足し算が入っています。 これで計算結果を反映しようとすると、#VALUE! エラーとなってしまいます。参照先のシートの構成などはできれば変えたくありません。 どのように直せばいいのでしょうか? 詳しい方ご教示お願いいたします。

  • マクロの自動実行などについて

    エクセル2003のVBAマクロについて質問です あるワークシートに値が入力されたら、マクロを自動実行するように出来ないでしょうか? 又、そのセルの値を別のセルにコピーしたいのですが、データを入力する度にセルの場所が ひとつ下へずれます。この最終列のセルの値を必ず拾うようにするにはどうすればよいでしょうか? ややこしくてすいません

  • エクセル マクロ 足し算

    いつもお世話になります。マクロ勉強中の初心者です。 マクロの足し算を教えてください。 A列  B列  C列 ・・・・  1   2    3  4   5    6  7   8    9 という数字のデータがあります。 これらのA列の合計、B列の合計・・・など列の合計を出すマクロはわかるのですが、  作成したVBA    Range("a4") = Application.WorksheetFunction.Sum(Range("a1:a3")) A列の合計(A1~A3)とB列の合計(B1~B3)とC列(C1~C3)の合計を、D4に合計させる方法を 教えてください。 どうぞよろしくお願いします。

  • セルの値が変ると自動でマクロが実行される。

    セルの値が変ると自動でマクロが実行されるVBAを教えて下さいm(_ _ )m 例えば、シート1のA1の値が変ると、マクロAが実行される。 シート1のA2の値が変ると、マクロBが実行される。 と一つのシート内に複数のイベントを設置したのですが、イマイチわかりません。 知恵をお貸し下さい。

  • 【VBA】マクロについて

    【VBA】マクロについて質問です。 マクロで複数のシートの特定のセル(A5(日付)、A7(社名)、B3(担当者)など)を別ブックのひとつのシートにまとめて、 日付 社名 担当者 シート1 A5 A7 B3 シート2 A5 A7 B3 シート3 A5 A7 B3 のように下へ下へ積み上げていくにはどうゆうマクロを組めばいいでしょうか。 同じ作業を複数のファイルで行わなければいけないため、マクロを組みたいのですが、よくわかりません>< ファイルによってシートの数が違うので、それにも対応すると有難いです。 どうぞよろしくお願いいたします。

  • EXCEL VBA シートの名前を指定してコピー

    EXCEL VBA 初心者です。 とても困っています。 助けてください。 excel2010を使っています。 今,「原本」というシートがあり,それをマクロを使って同じブック内にコピーしたいと思っています。 コピーして新しく作られたシートの名前は「A1」のセルに入力されている値にしたいです。 コピーされた後のシートにはマクロボタンは削除したいと考えています。 また,コピーした後のアクティブシートは「原本」のシートにしたいのですが これを全部いれたコマンドはどのようになるのでしょうか。 似たような質問だったり,回答があるのですが, どのように組み合わせたらいいのかよく分かりません。 どなたかお助けいただけないでしょうか。 よろしくお願いします。

  • 教えて下さい。VBAマクロで困ってます。

    VBAマクロ初心者です。実は、次のようなコードをどのように書けばよいのか教えて下さい。 例えば、 Aは、デスクトップ上のエクセルファイルの"Sheet1"のA1:B4のA列は数値、B列は文字列。 Aをデスクトップ上の別のフォルダーにあるエクセルファイルの"Sheet1"のA1:B4にデータをコピーをするのですが・・・。まったくわかりません。または、説明が下手でやりたい事が伝わらないかもしれませんが、よろしくお願いいたします。

  • シートを保護したらマクロがきかない?

    マクロもクエリも全くの初心者です。 仕事で他人が作成したエクセルデータを加工しなければなりません エクセルです 例えばSheet1上で、  セルA1 マクロ設定されており、クリックするとUserFormウィンドウが      開き、入力値を選択できるようになっている      →保護しておきたい  セルB1 文字列が入力されている      →保護の対象外にしたい。  セルC1 数式が入力されている      →保護しておきたい という状況で、 まずやってみた方法は「セルの書式設定」→「ロック解除」などを した上でシート保護をかけたのですが、セルA1のマクロも無効に なってしまいます。 個人的には入力規則等で対応できるかと思うのですが、 マクロの解除は不可能と(会社から)指示がありました。 マクロは不勉強ですので、何とか簡単に変更したいものなのですが やはり VBAコマンドでの(Activesheet.Unprotect?) 変更が必要になるのでしょうか? この機会にVBAに触れておくべきと考え質問さえていただきました。 そもそもアラ40の私に理解できうるものか不安を感じますが・・(汗) EXCELは2007だったと思います。(Verによって異なりますか?) 大変無粋ですが、初心者向きにご回答いただければ幸いですm(__)m

専門家に質問してみよう