
VBA初心者です。
VBAで複数のシートを選択するという動作を行う時、シート名を変更するとエラーになってしまうのですが、どうすれば回避できるのでしょうか?オブジェクト名?が使用できるらしいのですが、エラーになってうまく動作しません。指定の仕方を変える必要があるのでしょうか?
例えば、
Sheets(Array("第1週", "第2週", "第3週", "第4週", "第5週")).Select
Sheets("第1週").Activate
と記述してあって、シート名の"第1週"を"9月1日"とかに変更したら、当然エラーになりますが、
左のプロジェクトエクスプローラにある、Sheet1(第1週)の名前の変わらないオブジェクト名"Sheet1"の方で指定したいと思うのですが、単純に名前を置き換えても動作しません。どのように指定すればよいのでしょうか?

No.3
- 回答日時:
>オブジェクト名?が使用できるらしいのですが、
はい。オブジェクト変数に格納してから扱うようにすれば、
シート名が変更されても、同じシートを選択してくれます。
シート名変更前に対象をオブジェクトに格納し、
以下のように『オブジェクト変数(インデックス番号)』
で対象のシートを選択するようにすればシート名に
左右されずに目的のシートを操作できます。
以下のコードでは『第1週』を「mySt(1)」で扱う事ができ、
「mySt(2)、mySt(3)・・・・mySt(5)」で『第5週』のシートとなります。
『第2週』を飛ばした場合でも、左から1、2と
インデックス番号になりますので「mySt(1)~mySt(4)」で
『第1週、第3週、第4週、第5週』を扱うことになります。
■サンプルコード
Sub test()
'オブジェクト変数を用意
Dim mySt As Variant
'シートをオブジェクト変数へ格納
Set mySt = Worksheets(Array("第1週", "第2週", "第3週", "第4週", "第5週"))
'シートを選択
mySt.Select
'シート選択をいったん解除
Worksheets(1).Select
'シート名を変更(選択セルの左から1番目のシート名)
mySt(1).Name = "9月1日"
'シートを選択
mySt.Select
End Sub
やってみました。動作は問題なくしましたが質問内容と少し違いました。
質問の意図は、vbaでシート名を変更するのではなく、シート名を変更してもマクロが動作するという意味だったので・・・。
でも初心者なので参考になりました。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) シート名を簡単に書く方法があれば教えてください。 4 2023/08/24 12:40
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) エクセル VBAの構文について 2 2023/02/10 18:26
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) findメソッドの変数について 6 2023/06/23 08:01
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
このQ&Aを見た人はこんなQ&Aも見ています
-
シート名を変更してもVBAに影響がないようにしたい
Excel(エクセル)
-
EXCEL関数でシート名が変わる可能性があるシートのデータを表示させたい
その他(ソフトウェア)
-
エクセルで、シートの名前を変えても式にエラーが出ないようにしたい
Excel(エクセル)
-
-
4
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
5
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
6
シート名が変わる場合のVBAの設定の仕方
Excel(エクセル)
-
7
エクセルのシート連番の振り直し
Excel(エクセル)
-
8
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
9
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
10
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
-
11
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
12
Excelマクロ ファイル名が変わるとエラーになる
Excel(エクセル)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
ハイパーリンクでジャンプした...
-
EXCELの図形(テキストボックス)...
-
エクセルで複数のシートに画像...
-
【ExcelVBA】マクロの入ったシ...
-
エクセルシートの見出しの文字...
-
特定のシートのみ再計算させな...
-
エクセルのシー名を二段表示に...
-
エクセル、特定のシートにパス...
-
エクセルのファイルサイズが急...
-
EXCELで存在しないシート...
-
エクセルで誤ってF11キーを押す...
-
Excelで条件に一致したものだけ...
-
エクセル、別のシートの表をポ...
-
Accessのテーブルを既存のExcel...
-
Excelでマクロ設定したが反映さ...
-
Wordで差し込み印刷時に表示す...
-
Excel、Aのシートにあって、Bの...
-
エクセルの複数シートでのリン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
【ExcelVBA】マクロの入ったシ...
-
ハイパーリンクでジャンプした...
-
特定のシートのみ再計算させな...
-
EXCELの図形(テキストボックス)...
-
エクセルで複数のシートに画像...
-
エクセルのファイルサイズが急...
-
エクセル、特定のシートにパス...
-
Accessのテーブルを既存のExcel...
-
エクセルのシー名を二段表示に...
-
エクセルの2つのシートを並び...
-
EXCELで存在しないシート...
-
エクセルの複数シートでのリン...
-
エクセルで、シートの名前を変...
-
EXCELの「シートの見出し」のフ...
-
Wordで差し込み印刷時に表示す...
-
ワークシートそのものの色を変...
-
エクセルを開くとメニューバー...
-
エクセル、別のシートの表をポ...
おすすめ情報