No.4ベストアンサー
- 回答日時:
こんばんは。
Wendy02です。>ご迷惑でなければ、該当のファイルをgooのメールに送らせていただいて、見て頂けませんでしょうか?
確か、個人間のやり取りは、ここでは禁止されていたはずなので、申し訳ありませんが、それはできません。
「実行時エラー"1004":その名前は正しくありません」
やっと、そのエラーを確認できました。私は、勘違いをしていました。それは、マクロのコード側からではなくて、Excelのワークシート側からでした。
マクロでは、たぶん削除できないと思いますので、
Sub test3()
Dim objName As Object
For Each objName In Application.Names
objName.Visible =True
Next
End Sub
としてみて、挿入-名前-定義 で確認して、手動で削除してみてください。
No.6
- 回答日時:
こんばんは。
Wendy02です。>一括削除できないのは残念ですが、これで乗り切ります。
これは、特殊なエラーのひとつなのです。通常はありません。
今回、ある程度の確信があって、私も回答はしたのですが、さまざまなケースの中で、以下のような推測をしています。
※ 登録: マクロ(Names.Add) 削除: マクロ(Names(i).Delete)
こちらは、たぶん、問題ありません。
(ただし、マクロとしては、関心しません。理由は、Rangeオブジェクトの中に、変数が使えるからです。変数は一時的だから、そちらのほうがよいです。)
※ 登録: 手動(ワークシート) 削除: マクロ(Names(i).Delete)
For Each in ....Names でも同じ。
こちらは、問題が起こる可能性があります。おそらく、登録のミスか、登録の際の時間的なロスが、トラブルを起こすか、という想像をしています。
もらった雛形ファイルに既に隠れた「名前」が既にたくさん付いてました。
雛形ファイルだったために増殖してしまって困っていました。
ありがとうございました。
No.5
- 回答日時:
#1です
>特殊な状態になっています。
>もし、ご迷惑でなければ該当のエクセルファイルをメールで送らせて頂いてみていただく訳に行きませんでしょうか?
私は同じエラーが再現出来なかったので、そのエクセルファイルを拝見してみたいのですが、ここのルール違反になりますので、残念ながらメールでのやり取りは出来ません。
お力になれず、すいませんでした。
No.3
- 回答日時:
こんにちは。
私のほうの実行時エラーは、"1004"ではなく、標準モジュールなので、"438" なのですが、論理的なエラーではなくて、たぶん、Nameオブジェクトのいくつかが、ActiveWorkbookというメンバにないためのエラーだと思います。とても、興味のある現象ですね。
Names オブジェクトは、VBAでは、あまり使われない種類のものです。それは、今回のエラーではお分かりにならなかったかもしれませんが、
Application, Workbook, Sheet と三つのメンバ(配下)にあるものなので、とても使いづらいのです。
オブジェクトブラウザを見ていただければわかります。
おっしゃるコードを、そのまま直してみました。
あまり、現実的なコードではありませんが、以下のようになります。
Sub test1()
Dim objName As Object
For Each objName In Application.Names
If objName.RefersToRange.Parent.Parent.Name = ActiveWorkbook.Name Then
objName.Delete
End If
Next
End Sub
ですから、実際は、ActiveWorkbook.Names ではなくて、他のブックをクローズして、ブックを一本にすれば、以下のようにして済むはずです。
Sub test2()
Dim objName As Object
For Each objName In Application.Names
objName.Delete
Next
End Sub
ありがとうございます。
早速試してみたのですが、同じでした。
名前を消そうとしているエクセルファイルが特殊な気がしています。
ご迷惑でなければ、該当のファイルをgooのメールに送らせていただいて、見て頂けませんでしょうか?
No.1
- 回答日時:
For Each ループで使用中のコレクションの内容を消すのがまずいのでは?
後から消してみてください。
Sub test()
Dim i as Long
For i = ActiveWorkbook.Names.Count To 1 Step -1
ActiveWorkbook.Names(i).Delete
Next
End Sub
試してみましたが、同じエラーでした。
名前を消そうとしているエクセルシートが、
特殊な状態になっています。
もし、ご迷惑でなければ該当のエクセルファイルをメールで送らせて頂いてみていただく訳に行きませんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 10:35
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/10/03 09:55
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2019 非表示モジュール内...
-
VBA+VBSによる別インスタンスB...
-
Linux再起動後のエラーメッセー...
-
イベントプロパティに指定した...
-
[ マクロ ] エラーになったり...
-
エクセルに埋め込んだPDFの実行...
-
「パラメータが無効のため、処...
-
Linux上のコンパイルについて
-
iDVDのエンコード中のエラーメ...
-
LinuxのFedora31のdnfdragoraに...
-
ステートメントの末尾が不正です
-
名前を一括削除するマクロ
-
ACCESS モジュールで自作した...
-
"echo off"の動きをLinuxのシェ...
-
(Windows7)VB6でODBC接続エラー
-
Word終了時のエラーメッセージ
-
ペイントで取り込んだ画像のサ...
-
VBA オートメーションエラー(...
-
一点一葉とはどんな意味ですか?
-
ワードかエクセルで、KOKU...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2019 非表示モジュール内...
-
ステートメントの末尾が不正です
-
VBA+VBSによる別インスタンスB...
-
"echo off"の動きをLinuxのシェ...
-
Linux再起動後のエラーメッセー...
-
Apache2.4の起動でエラー
-
エクセルに埋め込んだPDFの実行...
-
「パラメータが無効のため、処...
-
[ マクロ ] エラーになったり...
-
Workbook_openでマクロが実行さ...
-
イベントプロパティに指定した...
-
VBA オートメーションエラー(...
-
UNIX(Solaris)でのtarファイル...
-
RからX11がうまく呼び出せてい...
-
OUTLOOKが起動しない
-
名前を一括削除するマクロ
-
(Windows7)VB6でODBC接続エラー
-
ペイントで取り込んだ画像のサ...
-
Linux上のコンパイルについて
-
インストールできません。
おすすめ情報