🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

解決済

1回答

4028閲覧

Excelの名前の定義が削除できません

pia

総合スコア14

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

0クリップ

投稿2021/03/04 02:52

編集2021/03/04 02:54

前提・実現したいこと

ダウンロードしてきたブックの中のシートを新しいブックにコピーしたいが、コピーするたびに名前の定義についてのエラーメッセージが出るので、名前の定義そのものを削除したい。
同じようなシートをコピーする作業がこれからも発生するので、マクロで削除できるようにしたい。

発生している問題・エラーメッセージ

移動またはコピーする数式に名前a666665が含まれていますが、この名前は有効なセル範囲またはExcelで内部的に使用されている名前と重複するため、変更する必要があります。

「a666665」は「a666666」、「a6666667」等別の数字のものもあり、一枚のシートにこのような名前定義がたくさんあるようです。

試したこと

1.まず「名前の管理」を見ましたが、print_areaしか入っていませんでした。
2.「名前」が非表示になっているのかと思い次のコードを実行してみました。

vba

1 Sub 名前表示() 2 Dim nm As Object 3 For Each nm In ActiveWorkbook.Names 4 nm.Visible = True 5 Next 6End Sub

しかしa666665という名前の定義は表示されませんでした。

3.とにかく削除することを考えて

vba

1 Sub 名前削除() 2 Dim nm As Object 3 For Each nm In ActiveWorkbook.Names 4 nm.delete 5 Next 6End Sub

としてみましたが、print_areaが消えただけでやはりコピーのたびにエラーが発生します。

補足情報(FW/ツールのバージョンなど)

windows10、Office365です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

シートの方にもNamesがいます。そっちかもしれません。

VBA

1 Dim nm As Name, ws As Worksheet 2 3 For Each nm In ActiveWorkbook.Names 4 Debug.Print nm.Name 5 nm.Delete 6 Next 7 8 For Each ws In ActiveWorkbook.Worksheets 9 For Each nm In ws.Names 10 Debug.Print nm.Name 11 nm.Delete 12 Next 13 Next

投稿2021/03/04 02:58

編集2021/03/04 03:02
jinoji

総合スコア4592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pia

2021/03/04 04:29

いただいたコードを動かしてみたのですが変わりがなく、F8でステップごとに実行してみたところ、「nm」がずっとNothingのまま終了していました。 ただ、その後ファイルを保存し、再度開いてシートのコピーを試したところ、今度はエラーが出ませんでした。 元のコードでも試してみたのですが、「名前の定義を削除したあと、一度保存して開き直す」という作業を行わないと、削除したという扱いにならないようです。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問