VBAで繰り返し処理をする方法【 For~Nextの使い方を紹介 】

Left Caption

豆父ちゃん

自動化といえば繰り返し処理!VBAで繰り返し処理をする方法が知りたい。

こんな疑問にお答えします。

結論から言うと、繰り返したいプログラムをFor~Nextで挟む!です。

For~Nextはエクセル業務の効率化を行うときに欠かすことのできない機能の一つで、繰り返し処理を行う機能のこと。For〜Nextを使って繰り返し処理を行えば、作業時間がグッと短くなり作業ミスがなくなります。

For〜Nextを使うようになってからは1日かかっていたエクセルの業務が、ものの一時間程度で終わらせることができるようになりました。

そんなエクセル業務の効率化に欠かせないFor~Nextの使い方を紹介します。

 

広告

繰り返し処理(For〜Next)の使い方

使い方を簡単に説明すると繰り返し行いたいプログラムをForとNextで挟む!たったこれだけです。

あとは何回繰り返すのか、どこからどこまで繰り返すのか、を設定していく。

とても簡単でVBAの勉強を始めたとき一番最初に覚えた機能です。

For~Nextの詳しい使い方は3つのサンプル(仕事でよく使われる繰り返しVBA)を使って紹介します。

For~Nextのサンプル3選

 

  • 繰り返しの回数を指定する
  • カウント関数を使用し、繰り返しの回数を変動させる
  • 1個飛ばしや2個飛ばしで繰り返しを行う

 

繰り返し処理 For〜NextのサンプルVBA

繰り返しの回数を指定する

1列目(A列)の1行から10行のセルにテキスト「〇」を入力する!というVBAの作り方を紹介します。

サンプルVBA

1 Sub テスト()
2 For i = 1 to 10
3 Cells( i , 1 ) = “〇"
4 Next
5 End Sub

Forの後にi = 1 To 10と入力

※iは変数なのでkでもjでもOKです。

サンプルVBAの2行目は繰り返し行う回数を1から10とし、その回数をiで定義する!という意味です。

サンプルVBAの3行目は1列目(A列)の1行から10行のセルにテキスト「〇」を入力する!という意味です。

※ちなみにプログラムの中でこの記号「"」で挟むと、テキストとして入力される。

あとは「For」と「Next」で挟んだプログラムが指定した回数(今回は i )繰り返されます。

実行結果

 

繰り返し処理For~Nextは「F8」キーで実行すると、プログラムの動きがよくわかります。

上記のように繰り返し回数やエラーが何回目の繰り返しのとき発生しているのかなどを調べるときに便利です。繰り返し処理を導入したVBAはエラーを見つけることが難しい!というデメリットがあります。

下記の記事ではデバック(エラーを見つけて修正を行う)の方法を詳しく紹介しています。

繰り返し処理VBAとデバックの方法を合わせて覚えておきましょう。

 

カウント関数を使用し、繰り返しの回数を変動させる

A列のテキストが「おはよう」のときB列にテキスト「〇」を入力する!というVBAの作り方を紹介します。

 

サンプルVBA

1 SUb テスト()
2 j=Cells(Rows.Count,1).end(xlUp).Row
3 For i = 1 To j
4 If Cells(i,1) = “おはよう" Then
5 Cells(i,2) = ”〇"
6 Else
7 End If
8 Next
9 End Sub

2行目では最後の行数を変数「 j 」と定義しています。変数 j にデータが入力されている最後の行数「Cells(Rows.Count,1).end(xlUp).Row」を入れる!という意味です。

4行目から7行目のA列のテキストが「おはよう」のときB列にテキスト「〇」を入力する!というプログラムをForとNextで挟んで完成です。

実行結果

 

サンプルVBAの2行目(入力されたセルの最後の行数をカウントするVBA)のおかげで、テキストが増減しても対応してくれます。

行数や列数の増減に対応する方法は下記の記事で詳しく紹介しています。

繰り返し処理VBAと行数や列数に対応するVBAを組み合わせることで、より複雑なVBAを作ることが可能になります。合わせて覚えておきましょう。

 

1行飛ばしや2行飛ばしで繰り返し行う

1列目(A列)の1行から10行のセルに1個とばしでテキスト「〇」を入力する!というVBAの作り方を紹介します。

 

サンプルVBA

1 Sub テスト()
2 For i = 1 To 10 Step 2
3 Cells( i , 1 ) = “〇"
4 Next
5 End Sub

サンプルVBAの2行目にStep 2を付け加えるだけです。

実行結果

2行飛ばしにするときはStep 3に変更するだけ

とても便利で簡単なStepなのですが注意事項があります。それは「Step」と数字の間にスペースを入れる!ということです。スペースを入れないとエラーが発生してVBAが動作しません。

Stepを使う場面

 

  • 繰り返しセルの結合を行う
  • 一行飛ばしで行を削除する
  • 一行毎にセルの色を変える

繰り返し処理For~NextとStepはセットで使い方を覚えておきましょう。

 

VBA初心者が効率化マクロを導入する方法

 

VBAなんて扱ったことないけどエクセル作業を自動化するマクロを導入したい!

このような問題を抱えながら日々のエクセル業務をこなしている方がおおくいらっしゃるのではないでしょうか。

 

こんな問題を解決する方法がこちら

  • マクロの開発を外注に依頼する
  • マクロが設定されたエクセルファイルをダウンロードする
  • 参考書やネットでVBAスキルを身に付ける

 

VBAの勉強を始める前は上記の方法で効率化マクロを導入していました。

 

 

 

完成されたマクロを使ってエクセル業務を処理する

作業効率が2倍以上アップ!!

便利すぎて自分でもマクロを設定したいと考え始める

参考書やネットの情報でVBAスキルを身に付ける

マクロ開発を代行できる程のスキルを習得

 

 

 

VBAは

他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

という特徴があります。

 

毎日のルーティーン作業にうんざりしている、だれでもできる単純作業に時間を費やしている、という方はあなたに合った方法でVBAを導入しちゃいましょう。

 

マクロの開発を外注に依頼する

マクロの開発を外注に依頼する導入方法は

VBAを全く扱えない方でもエクセル作業を自動化できる最も簡単な方法

です。

 

「こんなエクセル作業を自動化したい」「作った資料を自動的にPDFで保存したい」「決まった様式に写真を自動で貼り付けたい」

こんな感じで実現したい内容を依頼するだけで業務内容に合ったマクロを開発してくれます。

 

Left Caption

ガッツポーズの人

完成まで本業に集中できるので効率的

 

 

デメリットは、費用がかかることだけ。

開発内容、依頼先によってかかる費用は大きく異なります。

私が会社員の頃利用していた業者さんは1マクロあたり2万円~3万円の費用がかかりました。

 

Left Caption

疑問がある人

ちょっと高くない。。。

 

ちなみに、マメBlogでもエクセルマクロ開発代行サービスを承っています。

開発内容の確認、VBAコードの設定、動作確認後の調整、など全ての工程を私(マメ父ちゃん)が行っているので、

費用が安い!スピード納期!!

でやらせてもらっています。

 

ほとんど独学で身に付けたVBAスキルなので、内容によっては開発できないこともあるのでご了承ください。

 

ご相談、見積もり依頼は完全無料ですので気になる方は下記のリンクよりお問合せ下さい。

 

 

マクロが設定されたエクセルファイルをダウンロードする

VBA初心者でも『マクロが設定されたエクセルファイルをダウンロード』ですぐにエクセル作業を自動化することができます。

 

たとえば、

A4用紙に写真を貼り付けてコメントを入力する作業を自動化したい!という場合、

『写真を貼り付けるマクロ』が設定されたエクセルファイルをダウンロードすれば問題解決です。

 

実際に、『写真を貼り付けるマクロ』をダウンロードして使っている様子がこちら

写真貼付けマクロの使い方を示したイラスト

 

 

Left Caption

ガッツポーズの人

写真貼付け作業の効率がめちゃくちゃアップ

 

 

『マクロが設定されたエクセルファイルをダウンロード』する導入方法は、

VBA初心者でもマクロを導入できる、費用が安い、

というメリットがあります。

 

しかし

VBAに関する情報が多く公開されているとはいえ、ネット上で想定するマクロは見つけることが難しい

というデメリットもあります。

 

Left Caption

ガッツポーズの人

お目当てのマクロが見つかればラッキー

 

個人ブログやファイルを販売できるサイト「note」や「Tips」ではいろんなマクロの情報が掲載されているので是非参考にしてみてください。

 

今までマメBlogで受注した効率化マクロを下記のnoteで掲載していますので併せてチェックしてみてください。

 

 

 

参考書やネットでVBAスキルを身に付ける

先程も紹介しましたが、

VBAは他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

プログラミングです。

 

言い換えると、

情報量が豊富なので自分で勉強できちゃう

ということです。

 

私のVBAスキルはほとんど独学で身に付けたもので、

考えた処理のほとんどをVBAで表現できるレベルにまで到達した!

と思っています。

 

私の作ったマクロをプロのプログラマーが見れば、

お前の書くコードはインチキだ!「変数の宣言」とか「引数」を正しく使えよ!!

と感じるはずです。

 

でも、

私からすればどうでもいい!!!想定した内容を正しく処理できればよくないですか!?

 

独学であっても『写真を貼り付けるマクロ』『全てのシートをPDF出力するマクロ』『連番を振るマクロ』など、

業務内容に合ったマクロを開発できるようになれます。

 

独学でVBAスキルを身に付けるコツは、

エラーが発生してもいいからひたすらコードを書く、なんでもいいからエクセル作業をマクロ化してみる

です。

 

とは言っても、全くの知識0の方は何をすればいいかわからないですよね。

 

VBA知識0の初心者の方は、参考書『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】』を読んでみてください。

 

VBAの知識0の方でもすいすい読み進められる内容になっています。

やさしい内容にも関わらず「え!!VBAを使えばこんなことできるの!?」と感動すると思います。

 

実際に私はこの参考書を読んでからVBAの勉強を始めました。

 

Left Caption

ひらめく人

VBA学習スタートのきっかけをくれた参考書


 

 

VBAの魅力を発見した後は、

ひたすら自動化したい処理を実現するコードを書くだけ

です。

 

【VBA 写真を貼る】、【VBA PDF出力】、のようにネット検索すれば知りたいコードをすぐにゲットできます。

 

実現したい処理に向かって、「調べる→書いてみる→エラーを改善する→調べる」を繰り返していると

自然といろんなマクロが作れるようになっているはずです。

 

VBAに興味が湧いてきたという方は今からVBA学習をスタートさせちゃいましょう。