- ベストアンサー
Excel VBA セルの名前があるか無いかを知るには?
Excelのセル範囲に名前をつけています。 VBAで、Worksheetに名前"牛丼"が無ければ、処理をスキップしたいのですが、存在の有無を知る方法はあるでしょうか? if 0 < Range("牛丼").column then ... ' これはダメでした(TT) .Worksheet.Name はシート名のようですし...
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その1:エラー処理で対応 Sub Cells_Name4() 'エラートラップの設定 on error goto err1 'エラーが起こるかもしれない処理 Range("牛丼").Select 'エラートラップを解除 On Error GoTo 0 'エラーが起こらなかった場合の処理をして終了 msgbox("あります") exit sub 'エラーが起こった場合の処理をして終了 err1: msgbox("ありません") End Sub その2:名前を全部調べてフラグで判別 Sub Cells_Name() Dim MyName As Name Dim MyFlg As Boolen MyFlg=False '存在するかのチェック For Each MyName In ActiveWorkbook.Names if MyName="牛丼" then MyFlg = True Exit For End If Next If Myflg = True Then '存在する場合の処理 msgbox("あります") else '存在しない場合の処理 msgbox("ありません") End If End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
名前はシートにつくのでなく、Workbookに所属するようです。だからSheetまで追求するのは Sub test02() Dim n For Each n In ActiveWorkbook.Names MsgBox n.Name Next End Sub をやって見てください。名前定義分の名前が全部出てきますか。 その上で Sub test03() Dim n For Each n In ActiveWorkbook.Names If n.Name = "牛丼" Then MsgBox "牛丼あり" MsgBox n p = InStr(n, "Sheet3!") If p <> 0 Then MsgBox "Sheet3にあり" End If Exit Sub End If Next MsgBox "牛丼なし" End Sub をやって見てください。
お礼
いつもありがとうございます!!ばっちりOKでした!
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#1の補足 if MyName.name="牛丼" then だと思います。
お礼
ありがとうございます! つまづくとこでした!
お礼
ありがとうございます!その1使わせていただきます!!