マクロ中級者向けエクセルに限らず、プログラミングの世界で最も強力で破壊的な威力を発揮するのがループ(繰り返し)処理です。慣れれば誰でもサラサラっと書けてしまうのですが、覚え始めやど忘れしてしまったときなどに役立てていただくため、基本的なループ処理構文の雛形をご紹介しますので、コピペして使ってください。サンプルファイルもダウンロードしてご確認いただけます。<ループ処理のサンプルファイルはこちらです>loop-template.xlsサンプルファイルのシートには何も書いていませんが、Alt+F11キーを押していただくとマクロのコードをご確認いただけます。この記事はExcel2002、Excel2003、Excel2007、Excel2010、Excel2013を対象にしています。VBAにおけるループ処理構文は何種類かありますが、その中でも最もスタンダードで入門用として扱いやすいのがFor~Nextステートメントです。Sub以下かんたんに解説します。i」だけでも構いません。変数の型については別の記事で取り上げますので、今回は深く考えないでください。For~Next構文の最大の特徴はなんといっても始まりと終わりの値を自分で決めるところにある数字を繰り上げていくためのカウンターとして使う変数(今回のサンプルではi)の始まりと終わりの数値を明確に指定できるので、とてもシンプルです。1000上記は変数iが1から1000になるまでという意味になります。始まりと終わりが決まっている(わかっている)場合に向いていて、逆にループ処理の結果を待たなければ何件になるかわからない場合などには向いてません。Loopを使った方が楽です。Nextは範囲が明確に決まっていますので、書き方を間違えて永久ループになってしまうこともありません。条件に応じて処理件数が変わる(件数がわからない)場合はDo~Loopあらかじめ処理対象の件数がわかっていない場合は、「一定の条件であり続ける限り」あるいは「一定の条件に達するまで」処理をし続けるDo~Loopステートメントを使います。一定の条件が続く限り処理を続けるサンプル(Whileキーワードで判定)先ほどのFor~Next構文のコピペ用マクロ(For_Next_Sample)を実行した後に下記のマクロを実行すると、今セルに入っている数字にそれぞれ1を足します。Nextと違ってあらかじめ範囲を指定せず、1列目(A列)になにか値が入っている限りループ処理が続きます。Sub次のUntilキーワードを使って条件判定する場合との違いは【~である間】処理を続けるというところです。一定の条件に達するまで処理を続けるサンプル(Untilキーワードで判定)先ほどと同様、今セルに入っている数字にそれぞれ1を足します。Sub前のWhileキーワードを使って条件判定する場合との違いは【~になるまで】処理を続けるというところです。Each~Nextはオブジェクトの集まりを片っ端から処理するときに役立ちます。簡単な例を見てみましょう。Sub上の例ではセルの集まりを処理していますが、例えば他にもシートの集まりなどに対してもループ処理することができます。駆け足で書いてきましたけれども、いかがでしたでしょうか。今日のExcelスキルアップループ処理は超強力なプログラミング手法です。これに手を出し始めたあなたはもう立派なプログラマーです。私もなれるまでの間はよくど忘れして本を開いたりネット検索したりしました。Do~Loopの最後で変数を繰り上げるのを忘れて永久ループを実行してしまったりという失敗は今でもたまにやります。これからも、もしループの構文をうっかり忘れしてしまったら、この記事のことを思い出してくださいね。マイナビエージェントあなたにピッタリの条件で働くならあなたに合った派遣求人ならマイナビスタッフ!!派遣といえばテンプスタッフ!カンタン無料登録!※当サイトはリンクフリーです。ブログやSNSで紹介していただくと管理人は大喜びします。記事の丸写しや少し書き換えただけの転載行為はご遠慮下さい。Transpose:=True上記は、3個目まで記録したマクロになります。PM染谷さん、コメントありがとうございます。気づかずすみませんでした。解決済みかもしれませんが、下記のような感じでいかがでしょうか。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。