Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


38222 / 76732 ←次へ | 前へ→

【43651】Re:"xxx"という名前のシェイプ...
発言  ichinose  - 06/10/21(土) 17:47 -

引用なし
パスワード
   ひげくま さん、yuu1 さん、こんばんは。

>>以下のようなかんじではどうでしょうか。
>>場合によっては不都合があるかもしれませんが。
>>
>> If VarType(Evaluate("xxx")) = vbObject Then
>>  Debug.Print "存在したときの処理"
>> Else
>>  Debug.Print "存在しなかったときの処理"
>> End If
>
これは、気が付きませんでした。
>
>実際にやってみて、上手く動作しました。
>
>ただ、Evaluateの使い方がいまいち理解できていなくて、
>「場合によっては不都合が…」というのがどういう場合なのか
>まったく想像できません。
>動作を把握していない関数を使うのは、後々大変なことになる
>かもしれないので、動作を把握してから使おうと思います。
上記のコードだとアクティブシートに対して有効です。
(又は、上記のコードを当該シートモジュールに配置した場合は、
 当該シートがアクティブでなくても有効です)


Sub test()
  If VarType(Worksheets("sheet1").Evaluate("四角形 2")) = vbObject Then
    MsgBox "exist"
  Else
    MsgBox "not exist"
    End If
End Sub

上記のようにシートオブジェクトのEvaluateメソッドを使うと、
標準モジュールでも又、アクティブシート以外でも
正しく作動してくれます。

ご参考までに!!
0 hits

【43583】"xxx"という名前のシェイプの存在確認方法 ひげくま 06/10/19(木) 14:45 質問
【43584】Re:"xxx"という名前のシェイプの... Jaka 06/10/19(木) 14:50 発言
【43596】Re:"xxx"という名前のシェイプの... ひげくま 06/10/19(木) 16:55 お礼
【43643】Re:"xxx"という名前のシェイプの... ごんぼほり 06/10/20(金) 19:16 回答
【43648】Re:"xxx"という名前のシェイプの... ひげくま 06/10/21(土) 12:20 お礼
【43642】Re:"xxx"という名前のシェイプ... yuu1 06/10/20(金) 17:31 回答
【43649】Re:"xxx"という名前のシェイプ... ひげくま 06/10/21(土) 12:24 お礼
【43651】Re:"xxx"という名前のシェイプ... ichinose 06/10/21(土) 17:47 発言
【43689】Re:"xxx"という名前のシェイプ... ひげくま 06/10/23(月) 9:17 お礼

38222 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free