バックオフィス効率化!肥大化したExcelの「名前」を掃除してファイルを軽くする方法

【業務効率化】VBA
スポンサーリンク

その「名前」、実はファイルの肥大化やエラーを引き起こす原因になります。

Excelの作業中に、「移動またはコピーしようとしている数式またはワークシートには、移動先のワークシートに既にある名前 ‘○○’ が含まれています」という警告が表示されて、イライラしたことはありませんか?

この原因の多くは、過去の担当者が設定した「定義された名前」がそのまま残っていることです。

数個程度であれば手動で削除できますが、これが200個、300個となると、手作業では日が暮れてしまいます。

実は、Excelには数万個の名前を定義できますが、増えすぎるとファイルの動作が重くなり、最悪の場合はファイルが壊れる原因にもなります。

今回はそんなやっかいな大量の名前を一瞬で削除できる便利なVBA(マクロ)のコードをご紹介します。これを使えば、100個の名前削除もわずか1秒で完了します。

【業務効率化】VBAの記事を見る 

コピペでOK!全名前を一括削除するマクロ

以下のコードを、Excelの「標準モジュール」に貼り付けて実行するだけです。

Sub DeleteAllNames()
    Dim nm As Name
    Dim count As Long
    count = 0
   
    ' 確認メッセージ
    If MsgBox("ブック内のすべての名前を削除しますか?", vbYesNo + vbQuestion) = vbNo Then
        Exit Sub
    End If

    ' 全ての名前をループして削除
    On Error Resume Next ' エラー(削除できない名前)をスキップ
    For Each nm In ThisWorkbook.Names
        nm.Delete
        count = count + 1
    Next nm
    On Error GoTo 0

    MsgBox count & "個の名前を削除しました!", vbInformation
End Sub

使い方:3ステップで完了!

プログラミング初心者の方でも、以下の手順通りに進めれば大丈夫です。

  1. Excelで [Alt] + [F11] を押して、VBAの画面を開きます。
  2. メニューの [挿入] → [標準モジュール] をクリックします。
  3. 出てきた白い画面に、上のコードを コピー&ペースト して、[F5] キーを押してください。

なぜ「名前の削除」が必要になるのか?

Excelの「名前」は本来、特定のセル範囲に「売上合計」などの名前をつけて計算をわかりやすくするための便利な機能です。

しかし、古いファイルを使い回したり、外部からデータを貼り付けたりするうちに、目に見えない不要な「隠し名前」まで蓄積されてしまいます。名前の定義が増えすぎると予期しない動作の原因になりかねません。

もちろん「特定の名前だけ残したい」という場合は、その名前を削除対象から外すカスタマイズも可能になります。

ぜひ業務効率化にお役立てください!

【業務効率化】VBAの記事を見る 


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

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