• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロの詳しい方お願いします。)

エクセルマクロでfor nextを使ってデータを足す方法 | Excelマクロ初心者向け

このQ&Aのポイント
  • エクセルマクロのfor nextを使ったデータの足し算方法を解説します。D列とE列のデータを300行まで足してD列に表示する方法を紹介します。
  • マクロ初心者のためのエクセルマクロ解説。for nextを使ったデータの足し算方法を詳しく解説しています。行数が300行である場合について具体的に説明しています。
  • 初心者向けのエクセルマクロ解説。データの足し算にfor nextを使う方法について説明しています。行数が300行である場合の具体的なコードとエラー解決方法も紹介しています。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! >cell(5 + i, 4) としている部分すべてを >Cells(5 + i, 4) のように「s」を付けてください。 >もっと簡単な書き方があればお願いします というコトですので、 結局6行目~305行目までをループさせたいというコトですので、 Dim i As Long For i = 6 To 305 With Worksheets("Sheet1") .Cells(i, "D") = .Cells(i, "D") + .Cells(i, "E") End With Next i といった感じでも大丈夫だと思います。m(_ _)m

freepot
質問者

お礼

なんと、初歩的なミスですね。 ありがとうございます。 少しずつマクロを勉強しながら、いかに簡単に書くかということを最近意識するようになってきました。 また、お世話になるかもしれません。その時はよろしくお願いします。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>やりたいことは、D列にあるデータとE列にあるデータを足して、D列に表示させる マクロ以前に「エクセルの使い方」の知識があると,たとえば sub macro1()  worksheets("Sheet1").range("E1:E300").copy  worksheets("Sheet1").range("D1").pastespecial paste:=xlpastevalues, operation:=xladd, skipblanks:=true  application.cutcopymode = false end sub といった具合で十分可能です。 #参考 for nextやfor to nextで一つずつ一つずつ対象セルを総ナメしてくのは「判りやすい」かもしれませんが,一番遅いマクロになります。可能な限り「ひとまとめに処理」できるエクセルの使い方で工夫します。

freepot
質問者

お礼

ありがとうございます。 できるだけ、簡単なマクロがいいと思うのですが、 知識がなく、プログラムを一つ一つ処理していくのが今の段階では正確ですが、 今後、さらに勉強をしていきたいと考えています。 未だに式の文字の意味も正確に覚えていないので、頑張ります。