dポイントプレゼントキャンペーン実施中!

Worksheets(“sheet1”).Range(“A1”).Value = TextBox1.Value

このようなコードをたくさん(80個くらい)コマンドボタンに記述していくのですが
sheet1というシート名をワークシート側で変更したら当然エラーになりますよね?
影響が無い” ”内の記述ってありますか?

A 回答 (2件)

シート名ではなくシートインデックスやオブジェクト名で設定する


正し、インデックスの場合はインデックスを変更された時(位置の変更)、オブジェクト名の場合は削除された場合などで正しく処理されないか、エラーが出ます

シートオブジェクト名
Sheet1.Range("A1").Value = TextBox1.Value

オブジェクト名は 青 シート名は 赤 部分 インデックスはタブの左が1、右に行くにつれ2,3,、

画像参照
「シート名を変更してもVBAに影響がないよ」の回答画像1
    • good
    • 1

こんばんは



>影響が無い” ”内の記述ってありますか?
記法が「” ”」に限定のご質問だとすると、シート名しかないけれど・・・

>シート名をワークシート側で変更したら~~
では、何が「変わらない」のでしょうか?
その「変わらないもの」を利用すれば良いでしょう。
変わらないものがわからない場合は、確実に識別できる特徴があれば、それを「存在するシートから探す」とか。
それすらわからない場合は、「一体どうすれば特定できるのか」から考える必要があります。

確定できるのなら、変数に保持しておいて、必要に応じて参照すれば良いので、1回だけの検索処理で済みます。
とは言っても、No1様のご指摘にもあるように、「削除され」たり、「一致するシートがみつからない」場合に、どうするかの処理も考えておく必要があると思われます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています