【初心者向け】ExcelVBAで時短を実現|CellsとFor Nextの基本をやさしく解説

Excel/VBA 自動化

見積書・納品書・請求書などのデータが、
Excel・CSV・TSV形式で届くことは珍しくありません。

それを まさか印刷して手入力……
そんな非効率なこと、していませんよね?

もし

  • 同じ作業を毎月繰り返している
  • チェック作業に無駄な時間がかかっている
  • 残業を少しでも減らしたい

そう感じているなら、ExcelVBAは最強の時短ツールです。

この記事では、
「これだけ覚えればまずはOK」 というVBAの基本、

  • Cellsとは何か
  • For Nextとは何か

を、実務で使える例を交えて解説します。


VBAを使うメリット(SEO的に◎)

ExcelVBAを使えるようになると、
こんな変化が起こります。

  • 単純作業を自動化できる
  • 人為的なミスが減る
  • 作業時間が大幅に短縮できる

結果として、
ワークライフバランスが整い、
家で好きなことをしたり、副業に時間を使う余裕
が生まれます。


VBAコード画面の開き方

まずは、VBAを書くための画面を開きましょう。
方法は2つあります。

方法①(一番簡単)

Alt + F11

方法②

Excel上部メニューの
「開発」タブ → コードの表示

※「開発」タブが表示されていない場合は、
Excelのオプション設定から有効化できます(下図参照)。

これでVBAコードを記載する画面が開きます。


Cellsとは何か?

Cellsとは、Excel上のセルの位置を指定する命令です。

Cells(行番号, 列番号)

サンプルコード

Sub Sample()

    Cells(3, 1) = "時短術"

End Sub

このコードを実行すると、
A3セルに「時短術」 と表示されます。

  • 行番号:3
  • 列番号:1(A列)

CellsはVBAでほぼ必ず使う超重要要素なので、
ここはしっかり覚えておきましょう。


For Nextをマスターしよう

For Nextは、処理を繰り返したいときに使う命令です。

実務では

  • 行を下までチェックしたい
  • データ件数が毎回違う

こんな場面で必須になります。


実務例:請求書の検収チェックを自動化

例えば、
請求書管理用のExcelがあり、

  • 単価が入力されていれば「検収済み」
  • 単価が空白なら「未検収」

と自動で判定したいとします。

I列(9列目)をチェックする場合のサンプルです。

Sub 検収chkSample()

    Dim i As Long

    For i = 3 To 150
        If Cells(i, 9) = "" Then
            Cells(i, 10) = "未検収"
        Else
            Cells(i, 10) = "検収済み"
        End If
    Next

End Sub

コード解説(初心者向け)

  • If Cells(i, 9) = "" Then
     → I列のi行目が空白かどうかをチェック
  • Cells(i, 10) = "未検収"
     → 空白だった場合、J列に「未検収」と表示
  • Else
     → 空白ではなかった場合(=単価が入力されている)
  • Cells(i, 10) = "検収済み"
     → J列に「検収済み」と表示
  • End If
     → If文の処理はここまで
  • Next
     → 次のi行目にいく。

    「I列をチェックして、結果をJ列に表示している」
    と理解できればOKです。

VBAを使わなくてもできる。でも…

正直、この作業はVBAを使わなくてもできます。

  • フィルタをかける
  • 空白に「未検収」と入力
  • それ以外に「検収済み」と入力

でも、
この作業がシート毎に何枚もあったら?

私は、人海戦術は即Noです。

VBAなら

  • シートを自動で巡回
  • ボタン一つで全処理完了

が可能になります。


まとめ

今回は、
ExcelVBAで時短するために最初に覚えるべき

  • Cells
  • For Next

について解説しました。

少しずつ、
実務でそのまま使えるVBA
噛み砕いて紹介していきます。

ぜひ、
普段使っている管理シートで試してみてください。

※ 実行前には必ずバックアップを取ってください。
VBAは Ctrl + Z では元に戻せません

コメント

タイトルとURLをコピーしました