3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Excel VBA】Office資料の表記ゆれ・誤字を自動チェック!業務改善ツールを作ってみた🔥【開発日記】

3
Last updated at Posted at 2026-07-16

ChatGPT Image 2026年7月14日 23_57_09.png

🎯 AIを活用して業務改善ツールを作ろう!

こんにちは😊
Webサイトの記事やメルマガ、LPなどを作成していると、

  • 半角スペースが混ざっていた
  • 全角スペースが入っていた
  • 表記ゆれがあった
  • 修正漏れがあった

といった問題がよく発生します。

Excelには標準で検索機能がありますが、シート全体を自動でチェックして問題箇所を教えてくれる機能はありません。

そこで今回は、Excel VBAだけで簡単に使える「記事チェックツール」 を作成します。
完成すると、

  • シート全体を自動チェック
  • 問題セルを黄色で着色
  • 最後に検出件数を表示

という便利なツールになります😊


📚 目次


🎯 完成イメージ

ChatGPT Image 2026年7月16日 11_37_47.png

今回作成するツールでは、実行するだけで次のような流れでチェックが行われます。

  1. ブック内のすべてのシートを確認
  2. 全セルを順番にチェック
  3. 問題があるセルを自動検出
  4. 問題セルを黄色で着色
  5. 最後に検出件数を表示

これまで目視で行っていた確認作業を、大幅に効率化できます😊


🛠 開発環境

  • Microsoft Excel
  • Excel VBA
  • Windows

🤖 ChatGPTを活用して開発スタート!

ChatGPT Image 2026年7月2日 09_05_24.png

今回の開発も、以前作成したDifyの記事↓と同じように、

ChatGPTを開発パートナーとして活用しました。

  • どのような構成が良いのか
  • 処理はどの順番で行うべきか
  • 保守しやすいコードにするにはどうするか

などを自分で考えると、かなり時間がかかってしまいます。

ChatGPTへ相談しながら、一緒にツールを作る
というスタイルで開発を進めることにしました。

分からないことをその都度質問しながら進められるので、
初心者でも安心して取り組めると感じています😊


ChatGPT Image 2026年7月16日 12_52_22.png


STEP1 開発タブを表示する

まずはVBAを利用するために、開発タブを表示します。

操作手順

  1. Excelを開く
  2. ファイルをクリック
  3. オプションをクリック
  4. リボンのユーザー設定を開く
  5. 開発にチェックを入れる
  6. OKをクリック

これでリボンに開発タブが表示されます。

1.png


STEP2 VBAエディタを開く

続いてVBAエディタを起動します。

方法は2通りあります。

方法①

開発

Visual Basic

方法②

ショートカットキー

Alt + F11

2.png


STEP3 標準モジュールを追加する

VBAコードを書き込むためのモジュールを追加します。

操作手順

左側の

VBAProject

を右クリックします。

挿入

標準モジュール

これで Module1 が作成されます。

3.png


STEP4 VBAコードを貼り付ける

作成された Module1 を開きます。

ここへVBAコードを貼り付けます。
↓今回使用したコードはこちらです

クリックして開く

Option Explicit

Sub CheckData()

    Dim wsData As Worksheet
    Dim wsResult As Worksheet
    Dim cell As Range
    Dim resultRow As Long

    Dim txt As String
    Dim normalize As String

    Dim dict As Object
    Dim key As Variant
    Dim arr

    Set wsData = Worksheets("データ")
    Set wsResult = Worksheets("結果")

    Set dict = CreateObject("Scripting.Dictionary")

    '============================
    '結果シート初期化
    '============================
    wsResult.Cells.Clear

    wsResult.Range("A1") = "セル"
    wsResult.Range("B1") = "内容"
    wsResult.Range("C1") = "判定"

    resultRow = 2

    '============================
    'シート全体をチェック
    '============================
    For Each cell In wsData.UsedRange

        '文字列だけ対象
        If VarType(cell.Value) = vbString Then

            txt = Trim(cell.Value)

            If txt <> "" Then

                '--------------------
                '半角スペース
                '--------------------
                If InStr(txt, " ") > 0 Then

                    wsResult.Cells(resultRow, 1) = cell.Address(False, False)
                    wsResult.Cells(resultRow, 2) = txt
                    wsResult.Cells(resultRow, 3) = "半角スペースあり"

                    resultRow = resultRow + 1

                End If

                '--------------------
                '全角スペース
                '--------------------
                If InStr(txt, " ") > 0 Then

                    wsResult.Cells(resultRow, 1) = cell.Address(False, False)
                    wsResult.Cells(resultRow, 2) = txt
                    wsResult.Cells(resultRow, 3) = "全角スペースあり"

                    resultRow = resultRow + 1

                End If

                '--------------------
                '表記ゆれ判定
                '--------------------

                normalize = txt

                '半角スペース削除
                normalize = Replace(normalize, " ", "")

                '全角スペース削除
                normalize = Replace(normalize, " ", "")

                '半角へ統一
                normalize = StrConv(normalize, vbNarrow)

                If dict.Exists(normalize) Then

                    dict(normalize) = dict(normalize) & "," & cell.Address(False, False)

                Else

                    dict.Add normalize, cell.Address(False, False)

                End If

            End If

        End If

    Next cell

    '============================
    '表記ゆれ一覧
    '============================
    For Each key In dict.Keys

        arr = Split(dict(key), ",")

        If UBound(arr) >= 1 Then

            wsResult.Cells(resultRow, 1) = dict(key)
            wsResult.Cells(resultRow, 2) = key
            wsResult.Cells(resultRow, 3) = "表記ゆれ候補"

            resultRow = resultRow + 1

        End If

    Next key

    wsResult.Columns("A:C").AutoFit

    MsgBox "チェックが完了しました。", vbInformation

End Sub


STEP5 マクロ有効ブックとして保存する

VBAを保存するには通常のExcelファイルではなく、

マクロ有効ブック

で保存する必要があります。

保存形式は

Excel マクロ有効ブック(*.xlsm)

を選択してください。

image.png


STEP6 マクロを実行する

コードを貼り付けたら実行してみます。

マクロを設定したExcelに、チェックしたい内容を貼り付けます。
↓
メニューの「表示」から「マクロ」のボタンをクリック

なんとこれだけです😊!


STEP7 実際に行われるチェック内容

マクロを実行すると、ブック内のすべてのワークシートを対象に次の処理が行われます。

  • シート全体をチェック
  • 全セルを順番に確認
  • 半角スペースを検出
  • 全角スペースを検出
  • 先頭・末尾のスペースを検出
  • 連続スペースを検出
  • 問題セルを黄色で着色
  • 最後に検出件数を表示

人の目だけでは見逃してしまうようなスペースも、自動で検出できます😊

実際の画面がこちら↓


💡 Excel標準機能との違い

Excelには検索機能がありますが、

  • シート全体をまとめて確認
  • 表記ゆれを自動判定
  • 問題セルを色付け
  • 最後に件数を集計

といった処理は標準機能だけでは難しい場合があります。

VBAを利用することで、こうした確認作業をボタンひとつで実行できるようになります。


🚀 実際に使ってみた!

完成したチェックツールを実際の業務で使用し、記事の確認やデータチェックを行ってみました。

実際作業をしているメンバーの感想ですが…

👤 メンバーAの感想

今まではシート全体を目で追って確認していたので、どうしても見落としがありました。

このツールは問題のあるセルを色で教えてくれるので、確認作業がかなり楽になりました!

👤 メンバーBの感想

スペースの違いは見た目では気付きにくいので助かりました。

ボタンを押すだけでシート全体をチェックしてくれるので、作業時間の短縮にもつながりました!

好評なようで良かったです😊!


🎉 まとめ

今回はExcel VBAを使って、

  • シート全体のスペースチェック
  • 問題セルの自動着色
  • 検出件数の表示

を行うチェックツールの作成方法をご紹介しました。

確認作業はどうしても人の目に頼りがちですが、VBAを活用すれば作業時間の短縮だけでなく、見落としの防止にもつながります。

今後もデジタルが苦手な人でも簡単に操作出来るツールを作成、導入していくことで、
業務改善に繋げていきたいと思います!

ChatGPT Image 2026年7月16日 12_43_54.png
最後に、ツールを活かして活躍する私を添えておきます😊

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?