VBAマクロでセルの値読み取りとfor文を組み合わせよう
はじめに
Excelのデータからデータ抽出などセルの値読み取りとfor文を組み合わせるといろんなことができるようになります。ここでは一例を取り上げたいと思います。
1章 セルの値読み取りとfor文を組み合わせるとどんないいことがあるのか
VBAマクロで「セルの値の読み取り」と「For文」を組み合わせることで、エクセルの作業をとても効率的に自動化できます。初心者にとっても、この組み合わせは覚えておくと非常に便利です。
まず、セルの値の読み取りとは、エクセルの中にある数値や文字をマクロで取り出すことです。そして、For文は同じ処理を繰り返すための仕組みです。この2つを組み合わせると、「表の中のたくさんのデータを1行ずつ読み取って、必要な処理を自動で行う」ことが可能になります。
たとえば、A列に売上データが10行分あるとします。このデータを1つずつ読み取って、条件に合うものだけ合計したり、特定の値に色をつけたりする場合、人の手でやるととても時間がかかります。でも、セルの値を読み取りながらFor文で10回繰り返せば、すべて自動で正確に処理できます。
このように、たくさんのデータを扱う場面で、手間を大幅に減らし、ミスを防ぎながら、スピーディーに処理できるのが最大の利点です。また、毎月や毎週行う定型作業にも応用できるので、マクロを作っておけばボタン1つで作業が完了します。
初心者でも、「セルの値を読む」と「For文で繰り返す」という基本を覚えるだけで、日々のエクセル作業がぐっと楽になり、仕事の効率もアップします。
2章 実際に組み合わせてみよう
今回は画像のようにA列に1〜10までのデータがありそのデータの個数を数えたいと思います。
ここでfor文でA列に値がある間はという処理を書くのですが、
データの終了点の考え方としては下記の2点があります
- 取りたいデータの開始点から初めて空白が現れた点を終了点とする
- データがない場所から順番に参照していき初めてデータが表示されたところが終了点
これはそれぞれ
cells(1,1).end(xldown).rows
cells(21,1).end(xlup).rows
と書きます。
これを参考にデータの個数を数えるコードとしては
Sub ボタン1_Click()
Dim i, j As Integer
Dim num As String
For i = 1 To Cells(1, 1).End(xlDown).Rows
j = j + 1
Next
num = Str(j)
MsgBox " データの個数は" + num
End Sub
となりこれを実行すると
さいごに
今回は簡単に個数不明のデータの数を数える方法を取り上げました。
if文などを組み合わせると、データの中から条件に当てはまるものだけ抽出や進捗管理などできることが増えます。ぜひ色々組み合わせてください。
株式会社ONE WEDGE
【Serverlessで世の中をもっと楽しく】
ONE WEDGEはServerlessシステム開発を中核技術としてWeb系システム開発、AWS/GCPを利用した業務システム・サービス開発、PWAを用いたモバイル開発、Alexaスキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。
Discussion