【VBA】セルが空白なら〇〇するマクロの作り方~サンプル事例を使って解説~

 

セルが空白なら○○という処理をしたい

 

このような問題をVBAで解決する方法をご紹介します。

 

この記事では、

仕事でよく利用される代表的な3つの事例を参考にセルが空白なら〇〇という処理をするVBAの導入方法

を解説しています。

 

3つのサンプル事例がこちら

  • セルが空白なら背景色を赤にする
  • セルが空白なら空白セルをカウントする
  • セルが空白なら別シートのテキスト編集する

 

これらのサンプル事例は実務での導入実績があるもので、

データ管理や書類整理、スケジュール管理などの業務を効率化

することが可能です。

 

記事内の解説では、

コピペで使えるサンプルコード図を使ってVBA導入方法

を紹介していています。

 

VBA初心者だけど「セルが空白なら〇〇という処理をするVBA」を導入したい!なんとしてもエクセル業務の効率をアップさせたい!

と考えている方は是非参考にしてみてください。

 

広告

「セルが空白なら〇〇する」VBAとは?

「セルが空白なら〇〇する」という処理は、

関数IFと繰り返し処理(For~Next)を使って、指定範囲を検索し空白なら〇〇する

というVBAです。

 

 

空白なら〇〇するVBAの基本構造はこちら

 

For i = 1 To 10

IF Cells(i,1)="" Then

Cells(i,1).Interior.Color = RGB(255, 0, 0)

Else

EndIf

Next

 

上記基本コードは、

A列の1行目から10行目までの空白セルを赤に塗りつぶす

というVBAです。

 

この基本コードをベースにすることで業務内容に合ったVBA開発ができるようになります。

 

セルが空白なら〇〇するVBAのサンプル事例

セルが空白なら〇〇するVBAがどのような処理ができるのか!

を具体的にイメージして頂くために「3つのサンプル事例」を使って処理内容をご紹介します。

 

サンプル事例① セルが空白なら背景色を赤にするマクロ

 

一覧表の行数、列数は変動しても問題ありません。

 

VBA実行結果

VBAの実行結果がこちら

 

空白セルの背景色を一瞬で赤に塗りつぶすことができました。

 

Left Caption

ガッツポーズの人

記入漏れの防止に使えます

 

サンプルVBA

設定されているVBAがこちら

Sub 背景色を赤にする()
    Dim i, j As Long
    g = Cells(Rows.Count, 3).End(xlUp).Row
    r = Cells(3, Columns.Count).End(xlToLeft).Column
    For i = 3 To g
    For j = 3 To r
    If Cells(i, j) = "" Then
    Cells(i, j).Interior.Color = RGB(255, 0, 0)
    Else
    End If
    Next
    Next
End Sub

 

3行目で、3列目の最終行を変数gに格納

4行目で、3行目の最終列を変数rに格納

5行目から12行目で、Cセルから最終セルまでを繰り返し空白なら背景色を赤に変更

という内容です。

 

関連記事「関数IFやFor~Next(繰り返し処理)の使い方」では関数IFとFor~Nextの組み合わせ方法が詳しく紹介されています。

 

 

参考にしてみてください。

 

サンプル事例② 空白セル数をカウントするマクロ

 

VBA実行結果

VBAの実行結果がこちら

 

指定範囲内の空白セルの個数を一瞬でカウントすることができました。

指定範囲が広くなればなるほどVBAの効果を体感できるはずです。

 

サンプルVBA

設定されているVBAがこちら

Sub 空白セル数をカウントする()
    Dim i, j As Long
    g = Cells(Rows.Count, 3).End(xlUp).Row
    r = Cells(3, Columns.Count).End(xlToLeft).Column
    Cells(g + 1, r) = WorksheetFunction.CountIf(Range(Cells(4, 4), Cells(g, r)), "")
    Cells(g + 1, r - 1) = "合計"
End Sub

 

3行目で、3列目の最終行を変数gに格納

4行目で、3行目の最終列を変数rに格納

5行目で、D4セルから最終までの範囲にある空白セルをカウントし最終セルの1行下に結果を表示

6行目で、表示した結果の1つ左のセルに「合計」というテキストを表示

という内容です。

 

サンプル事例③ セルが空白なら別シートのテキストを転記する

 

VBA実行結果

VBA実行結果がこちら

 

7箇所の空白セルにテキストを一瞬で転記させることができました。

「入力忘れ」の防止に効果的です。

 

サンプルVBA

設定されているVBAがこちら

Sub 別シートのテキストを転記する()
    Dim Ash As Worksheet
    Dim Bsh As Worksheet
    Set Ash = ThisWorkbook.Worksheets("別シートのテキストを転記する")
    Set Bsh = ThisWorkbook.Worksheets("背景色を赤にする")
    Dim i, j As Long
    g = Ash.Cells(Rows.Count, 3).End(xlUp).Row
    r = Ash.Cells(3, Columns.Count).End(xlToLeft).Column
    For i = 3 To g
    For j = 3 To r
    If Ash.Cells(i, j) = "" And Bsh.Cells(i, j) <> "" Then
    Ash.Cells(i, j) = Bsh.Cells(i, j)
    Else
    End If
    Next
    Next
End Sub

 

2行目から5行目で、2つのシートを区別し変数「Ash」と「Bsh」に格納

7行目で、3列目の最終行を変数gに格納

8行目で、3行目の最終列を変数rに格納

9行目から16行目で、「別シートのテキストを転記する」Sheet内のセルを検索し空白なら「背景色を赤にする」Sheetの情報を転記する

という内容です。

 

セルが空白なら〇〇するVBAの導入方法

 

VBAの導入方法はどのサンプル事例でもやり方は同じです。

 

なので、

 

「セルが空白なら背景色を赤にするマクロ」を例として導入方法をご紹介していきます。

 

1.VBA編集画面を開く

 

2.標準モジュールを作成する

 

3.標準モジュールにVBAを記入する

 

サンプルコードは上記で紹介しているものをコピペするか、上記の画像を参考にしながらご自分で入力してください。

 

4.ボタンの作成

 

5.作成したボタンにマクロを登録

 

これで「セルが空白なら背景色を赤にするVBA」の導入が完了。

 

手順通り操作すれば簡単に「セルが空白なら〇〇するVBA」を導入することができるはずです。

他のサンプル事例も導入方法は同じで、

Modulに入力するコードを変える

だけで設定可能。

 

上記で掲載しているサンプルVBAを使って是非挑戦してみてください。

 

業務内容に合わせた「セルが空白なら〇〇するVBA」を導入する方法

この記事では、「セルが空白なら〇〇するVBA」の使い方や導入方法を詳しく説明してきましたが、

業務内容に合わせたマクロを導入するのって結構難しいですよね。

 

基本的なことは理解できたけど思い通りのマクロに設定できない

という方が多いのではないでしょうか。

 

そんなVBA未経験者や初心者の方におすすめのVBAの導入方法をご紹介します。

 

 

VBA開発を専門家に依頼をする

自分でVBAを開発することができなくても、専門家にVBAを設定してもらうことで業務内容に合わせたVBAを導入することができます。

 

依頼方法としては、

「こんなような仕事をしていて、こんなような作業で困っている」というように業務内容を報告。「こんなような処理を自動化したい」という要望事項や改善事項を相談してVBAの開発を依頼する

このような流れが一般的です。

 

開発費用はかかってしまいますが仕事の効率を2倍、3倍にアップさせることができるので、

エクセル業務のウェイトが多くて困っているという方はVBAを使ったエクセル業務の自動化は絶対におすすめです。

 

当マメBlogでも業務内容に合わせたVBA開発依頼を受注しています。

 

  • 写真を貼り付けるマクロの開発
  • 書類作成を自動化する転記マクロ開発
  • 絞り込み機能付きドロップダウンリストの設定

 

Left Caption

ガッツポーズの人

上記のようなマクロ開発の相談を受けることがあります。

 

マメBlogが行うVBA開発の特徴がこちら

 

  1. 安価
  2. スピード納入
  3. 業務内容に合わせた柔軟なVBA開発

 

土曜日、日曜日、祝日関係なしに作業させていただきますので「スピード納入」が可能です。

 

まずは「どんな処理を自動化したいのか」をご相談ください。

「VBA開発が可能か」「どのようなVBAを設定すべきか」「見積金額はどれくらいなのか」を打合せした後、作業を開始いたします。

 

Left Caption

ひらめく人

どんどんVBAを導入してエクセル業務の効率をアップさせましょー

 

 

VBAが設定されたエクセルファイルを手に入れる

VBA未経験者の方でも簡単にVBAを導入する方法として、

自動化したい内容と同じ処理をするVBAが設定されたエクセルファイルをダウンロードして利用する

という方法があります。

 

ネット上にはいろんなVBAの情報が豊富に掲載されていて、

ダウンロードしてそのまま仕事に応用できるようなエクセルファイルがアップされています。

 

関連サイト「セルが空白なら〇〇するVBAのダウンロード」では、

この記事で紹介している3つのサンプル事例が設定されたエクセルファイルをダウンロード

することができます。

 

設定されているVABを切り取ってアレンジする!エクセル業務で使っているブックにそのまま導入する!

して活用可能です。

 

是非参考にしてみてください。

 

VBAの基礎知識を身に付ける

VBAの基礎知識を身に付けることで、参考書やネットにアップされているVBAを扱えるようになります。

 

基本的なVBAを組み合わせることで効率化VBAを自分で設定することが可能に!!

 

Left Caption

ガッツポーズの人

「セルが空白なら〇〇するVBA」だって導入することができるようになります。

 

VBAの基礎知識を身に付けるおすすめの方法が、

オンラインプログラミングスクール【1st Step】VBA初心者向けの参考書を組み合わせ勉強する

です。

 

これはめちゃくちゃおすすめのVBA基礎知識を身に付ける方法なので騙されたと思ってお試しください。

 

オンラインプログラミングスクール【1st Step】を利用した感想を紹介している記事がこちら

 

VBA初心者向けのおすすめ参考書を詳しく紹介している記事がこちら

 

 

VBAはネットや参考書から情報を得やすいので、最も勉強のしやすいプログラミングと言われています。

 

実際に私はプログラミングに触れたことがない状態でVBA学習を始めて、1ヵ月以内に業務効率化VBAを導入できるようになりました。

 

基礎知識とコツさえ掴めば誰でも簡単に業務効率化VBAを開発できるようになると思います。

 

メルマガでは、初心者向けのVBA学習情報を発信しています。

プログラマーではない素人の私が発信しているメルマガなので、VBA初心者の方に伝わりやすい内容になっています。

 

VBAに興味はあるけど勉強をスタートさせるまでには至ってない

このような方は是非メルマガに登録してVBAに関するお得な情報をゲットしてみて下さい。