カウントアップとは、n=n+1というようなコードです。

これも最初は、何なのか理解できない内容です。

理解するとカンタンなのですが、今回は、カンタンなカウントアップで遊んでみましょう。

カウントアップで遊ぶ

こんにちは。伊川(@naonaoke)です。

最近、競馬のツールに関して、バージョンアップをしています。

それは、少しでも、時間を短縮するためです。

ツール作成時は、標準モジュールも、シートモジュールの区別も知りませんでした。

だから、シートモジュールにどんどん記載していました。

知らないって、怖いですよね。

今回は、バージョンアップ6回目なんです。

規則性のないデータを転記する小技を紹介します。

このブログはこんな人にお勧め

今回のテーマ
  • n=n+1という意味が分からない人
  • カウントアップが苦手な人
  • VBAを勉強している人

このブログを、読み終わるころには・・・・

変数を使うことが、楽しくなると思います。初心者の頃は、ループで変数を使えるようになると楽しくなりますが、カウントアップが使えるようになるともっと楽しくなります。

規則性のないデータを転記

以前、Do While Loopで、別のシートに転記する方法を紹介しました。

この転記方法は、3行飛ばしとか、4行飛ばし等、規則性がある場合には有効です。

しかし、実務では、そんなに、都合よくデータが整形されていません。

ここで、カウントアップを使います。

規則性のないデータを転記 作業手順 その1 データベース確認

上記のようなデータベースがあります。


例えば、同一シートのJ列へ転記します。

ただ重複もしていますので、重複のないリストを作成します。

ここで、連想配列や、Collectionを使うのはやめましょう。

  1. C列、D列に文字があったら、C列を、J列に転記
  2. C列が、空白で、D列に文字があったら、J列へ転記
  3. D列が、空白で、C列に文字があったら、J列へ転記

特に、順序は、この場合は気にしていないです。

もし、順序が、必要ならば、その時に考えます。

このような場合には、実務なら、作成依頼者に必ず確認しましょう。

それもVBAのスキルです。

規則性のないデータを転記 作業手順 その2 記載するコード


コード自体は、難しくないと思います。


カウントアップの記載場所を間違うと作動しないので、注意しましょう。


規則性のないデータを転記 余談

このカウントアップですが、理解するまでに、私は、時間がかかりました。

永遠に、カウントアップするのではないか?

n=n+1 と記載した場合、ここで、終了と記載しないと、永遠にカウントアップすると思っていました。

しかも、なんの脈略もなく、勝手に変数を決めていいのかと思っていました。

本来ならば、Dim n as Long と記載すべきです。

この場合は、For~Nextのループを抜けると、カウントアップも終了します。

コードの記載ミス

Cells(j, 10) = Cells(j, 1)と記載して、悩んだことがあります。


Jで、統一すると、同時にループが始まるので、上詰めで転記できません。

For~Nextのループと、カウントアップとで、分けることに気が付かないと、ある意味、悪循環のループになります。

その他の疑問は、下記の記事を参照してください。

カウントアップするコードの記載場所がわからない

これは、一概には、言えないので、ケースバイケースとなります。

要するに、慣れるしかありません。

伊川直助
※ループを勉強するには、最適の書籍です。

ここがポイント

ここがポイント
Function8.png
たかが、カウントアップと思うかもしれませんが、本当に重要な考え方です。ループとカウントアップを理解できると、コードが短くて、簡潔になります。

ぜひ、簡潔なコードをかけるようにしましょう。

動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

今回は、カウントアップについて記載しました。

カウントアップは、わからなくはないのです。

モヤモヤしているような感じですかね。

この記事で、モヤモヤ感がスッキリしていただけたらと思います。

今回も最後まで読んでいただき、ありがとうございました。

 

今回のサンプルファイルは、No225です。

サンプルファイルを購入希望の方はココをクリック
サンプルファイル
VBAを勉強中の悩みを解決
  • なんで動かないの?
  • もうやだ!
  • どこにも情報がない!
スポンサーリンク

Twitterでフォローしよう

おすすめの記事