- ベストアンサー
範囲名定義の削除マクロ
よろしくお願いします。 ブックに不定数の範囲名が設定されていて、ある複数の範囲名を除き、他はすべて削除するマクロを組もうと思い、以下の通りに組んでみました。 範囲名 A と Q 以外はすべて削除するつもりなのですが、 If 範囲名(i) <> "A" Or "Q" Then の行で「型が一致しません。」とエラーが出ます。 If 範囲名(i) <> "A" Then と Or を使わなければ、成功するのですが・・・。 Or はこの場合使えないということなんでしょうか? まったく違った組み方もあると思いますが、含めてご教授願います。 以下、自作マクロサンプル ----- Sub 不要範囲削除() Dim i As Integer Dim 範囲名(20) As String With ActiveWorkbook NC = .Names.Count For i = 1 To NC 範囲名(i) = .Names(i).Name Next For i = 1 To NC If 範囲名(i) <> "A" Or "Q" Then .Names(範囲名(i)).Delete End If Next End With End Sub
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
↓で試してみてください。 '-------------------------------------------- Sub test() Dim MyTeigi As Name For Each MyTeigi In ActiveWorkbook.Names If MyTeigi.Name <> "A" And MyTeigi.Name <> "Q" Then MyTeigi.Delete End If Next End Sub '--------------------------------------------
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
(範囲名(i) <> "A") and (範囲名(i)<>"Q") としてみたらどうでしょう
お礼
早々の回答ありがとうございます。 回答いただいて、ハッっと気づきました・・・。(^^;)そうですよね・・・。それぞれ条件式を AND なり OR なりでつながないといけないですよね。ありがとうございました。
お礼
このほうが、よりすっきりなりますね。どうも For Each分は苦手で・・・。これ使わさせていただきます。ありがとうございました。