VBAでの変数の使用と繰り返しについて3

スポンサーリンク

Do Until~Loop構文の続き

前回はDo Until~Loop構文を記述しました。今回はDo Until~Loop構文の問題点と解決法を記載します。

前回作成したコード

前回作成したコードは「B列の値が80以上だった場合に、横のA列のセルを黄色に塗る操作」を「1行目からA列が空欄になる行まで繰り返す」操作です。

Sub 繰り返し実行2

Dim i’①変数としてiを使う
i = 1’②iが1からスタートすることを記載
Do Until Cells(i,1).Value=””’③Cells(i,1)が空欄になるまで続ける
If Cells(i,2) >= 80 Then’(i,2)セルが80以上なら
Cells(i,1).Interior.ColorIndex = 6 ’(i,1)セルを黄色に塗る。
End If’Ifの作業を終了する。

i = i +1’⑤iを1つずつ増やす
Loop’繰り返す

End Sub

前回のコードがうまく動かないケース

A列が空になるまで作業を続けるVBAは使い勝手がよく、便利なのですがうまく動いてくれない場合もあります。

代表的な例は、処理を継続したい行のうち、「A列が途中で空欄になっている行がある場合」です。
Excelのシートの場合空欄があることも多いので注意が必要です。

別のコードの記載方法

途中でA列が空欄になっている場合、「A列が空欄になるまで」という繰り返しの条件を少し変更する方法があります。
主に以下のような対応が考えられます。

①Excelのシートで一番下から数えて、セルに何か記載されている行までコードを続ける

多分一番メジャーな対応です。
使えるようになるのに必要な知識は3点です。

(1)Excelでは2003以前のバージョンの一番下の行は65,536行目、2007以降は1,048,576行目です。

自分が扱うファイルで絶対に文字が書かれていない行を起点とする必要があり、最終行を超えるとエラーになります。
私はよく60,000行からスタートのコードを書きます。(どちらのバージョンのExcelでも使えるようにしたいのと、60,000行を超えるデータを扱うことがあまりないため)

(2)下から上に進んで一番最初に何か記載されているセルの選択は「.End(xlUp)」のコードを使います。

このコードを覚えておくとかなり便利です。すごく使えるやつです!
手で操作するとき、マクロを記録するときは、記録を開始して「Ctrl + ↑」で記録されるので覚えてなくても思い出せます。

(3)セルの行の位置を数字にして表すのに「.Row」を用いる。

普通にセルを選択する際に使うことはないですが、「.End(xlUp)」などのコードを用いて、対象とするセルを移動した場合に、
そのセルが何行目かを表すのは「.Row」を使います。

よって例えば、何行目まで処理を行うかを上記の方法で進める場合、終了の行は以下のコードで表せます。

Cells(60000 , 1) .End(xlUp) .Row
’Cells(60000,1)から上に向かって、最初にA列に何か文字が書かれているセルの行

繰り返しのコードはFor~Next構文を用いて以下のように変更します。

For i = 1 to Cells(60000 , 1) .End(xlUp) .Row
~~~繰り返したい処理を書いたコード~~~
Next i

②A列の他の列も同時に空欄になるまで処理を継続するコードに書き換える

繰り返しを中断する条件を厳しくします。他の列も同時に空欄になっていないと終了しないという記述です。

Do Until Cells(i,1).Value=”” And Cells(i,3).Value=””
’Cells(i,1) とCells(i,3)が両方空欄になるまで続ける

これでA列とC列が同時に空欄になるまで処理が続きます。
もちろんC列でなくても空欄になりにくい列を数字で表せば大丈夫です。

③A列の次の行も空欄になるまで繰り返しを続けるコードに書き換える

②と似ていて条件を厳しくしますが、A列の中で処理を行うものです。

Do Until Cells(i,1).Value=”” And Cells(i+1,1).Value=””
’Cells(i,1) とCells(i+1,1)が両方空欄になるまで続ける

VBA(マクロ)の繰り返しコードを作るときの注意点

それぞれのコードの書き方にも一長一短があり、どれが一番優れているかはなんとも言いにくいです。
色んなコードを書けるようにしておくのが一番ですが、まずは「For i = 1 to Cells(60000 , 1) .End(xlUp) .Row」のコードを把握しておくと便利だと思います。

おすすめ書籍 amazonicon Amazon rakutenicon 楽天 Yahooicon Yahoo検索
amazoniconAmazon
rakutenicon楽天Kobo電子書籍ストア
続 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,527
rakutenicon楽天ブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本(続) 最初からそう教えてくれればいいのに! Excel [ 立山秀利 ]
価格:2,808
rakuteniconbookfan 2号店 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本/立山秀利【1000円以上送料無料】
価格:2,376
rakutenicon楽天ブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! Excel [ 立山秀利 ]
価格:2,376
rakuteniconHMV&BOOKS online 1号店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに!Excel2007 / 2003対応 / 立山秀利 【本】
価格:2,376
rakuteniconブックオフオンライン楽天市場店
【中古】 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに!Excel2007/2003対応 /立山秀利【著 【中古】afb
価格:1,320
rakuteniconKSC
『中古』続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本
価格:6,989
rakutenicon楽天Kobo電子書籍ストア
デバッグ力でスキルアップ! Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,236
rakuteniconクロネコ書店
【中古】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本—最初からそう教えてくれればいいのに!Excel2007/2003対応【中古】
価格:3,330
rakuteniconぐるぐる王国DS 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
rakuteniconbookfan 1号店 楽天市場店
【店内全品5倍】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本/立山秀利【3000円以上送料無料】
価格:2,376
rakuteniconネットショップ駿河屋 楽天市場店
【中古】単行本(実用) ≪コンピュータ≫ Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 / 立山秀利【中古】afb
価格:1,570
rakuteniconコンプリートブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
rakuteniconぐるぐる王国 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
rakuteniconECJOY!プレミアム楽天市場店
秀和システム Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! 立山秀利/著
価格:2,376
rakuteniconドラマ楽天市場店
【新品】【本】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 立山秀利/著
価格:2,376
rakutenicon楽天Kobo電子書籍ストア
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,138
rakutenicon楽天Kobo電子書籍ストア
続々 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,430
rakuteniconKSC
『中古』ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本
価格:6,468
rakuteniconKSC
『中古』続々ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本
価格:10,788
rakuteniconぐるぐる王国DS 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
rakuteniconドラマ楽天市場店
【新品】【本】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 立山秀利/著
価格:2,808
rakuteniconbookfan 2号店 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利【1000円以上送料無料】
価格:2,808
rakuteniconbookfan 1号店 楽天市場店
【店内全品5倍】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利【3000円以上送料無料】
価格:2,808
rakuteniconぐるぐる王国 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
rakuteniconVALUE BOOKS
【中古】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! Excel 続 /秀和システム/立山秀利 (単行本)【年末 セール SALE 対象商品】
価格:758
rakuteniconコンプリートブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
rakuteniconVALUE BOOKS
【ポイント 10倍】【中古】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! Excel 続 /秀和システム/立山秀利 (単行本)【年末 セール SALE 対象商品】
価格:758
rakuteniconブックオフオンライン楽天市場店
【中古】 続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! /立山秀利【著】 【中古】afb
価格:1,264
rakuteniconECJOY!プレミアム楽天市場店
秀和システム Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 最初からそう教えてくれればいいのに! 立山秀利/著
価格:2,808
Yahooicon京都大垣書店Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 / 立山 秀利 著
価格:2,808
Yahooiconbookfanプレミアム
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 / 立山秀利
価格:2,808
Yahooiconbookfan Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利
価格:2,808
Yahooiconbookfanプレミアム
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 / 立山秀利
価格:2,376
Yahooiconbookfan Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本/立山秀利
価格:2,376
YahooiconHonya Club.com Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利
価格:2,808
Yahooiconぐるぐる王国 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
YahooiconHMV&BOOKS online Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに!Excel2007 /
価格:2,376
Yahooiconぐるぐる王国 スタークラブ
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
Yahooiconぐるぐる王国2号館 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
Yahooiconぐるぐる王国DS ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
Yahooiconぐるぐる王国 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconぐるぐる王国 スタークラブ
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconぐるぐる王国2号館 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconぐるぐる王国DS ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconドラマ書房Yahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 立山秀利/著
価格:2,808
YahooiconドラマYahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 立山秀利/著
価格:2,808
YahooiconWINDY BOOKS on line
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本  続
価格:2,808
Yahooiconドラマ書房Yahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 立山秀利/著
価格:2,376
YahooiconドラマYahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 立山秀利/著
価格:2,376

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする