Excel VBA質問箱 IV

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

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


67655 / 76733 ←次へ | 前へ→

【13632】Re:シート名の変更がかかるとマクロ内のコー...
回答  ichinose  - 04/5/10(月) 10:40 -

引用なし
パスワード
   ▼megu さん:
おはようございます。


>ユーザーにシート名を変更されたときに起こる問題です。
>シート名が『Sheet1』のシートの名前をユーザーが別の名前(例えば『Sheet2』)に変えた場合に、Excelシート内の計算式に埋め込まれている『Sheet1』という記述は『Sheet2』に自動変更されるのでこちらは問題ないのですが、
>マクロ内の『Sheet1』という記述はそのまま残るため、マクロ実行時に『Sheet1』という名前のシートが無い為エラーが起こってしまいます。
>
>これに対処するためにシート名を変更されてもマクロから参照できるようにしたいのですが、どのようにすれば良いのでしょうか。
>
>ちなみに、一つのシートをxlVeryHiddenに設定しておいて、そのシートからPrevious・Nextで参照するようにしようかと思いましたが、その場合はシートの並び順を変更された場合に誤動作を起こしてしまいました。
>
>「シート名を変えないでね」とユーザーにお願いするしかないのでしょうか・・・。

そうですね。ブックの保護を行ってシート名の変更やシートの移動をさせない方法も
あります。これは私はよくやります。

シート名を変更したり、移動しても良い方法と言うと
思いついたのは、名前の定義を使用する方法です。

以下のコードで名前の定義を行います。

Sub 定義()
  ActiveWorkbook.Names.Add Name:="sheet1", RefersToR1C1:="=Sheet1!R1C1"
End Sub
もちろん、手動操作でも可能です。

参照するときは、

Sub test()
  Range(Names("sheet1").Value).Parent.Select
End Sub

という方法です。
参考にしてください。
1 hits

【13630】シート名の変更がかかるとマクロ内のコー... megu 04/5/10(月) 10:04 質問
【13632】Re:シート名の変更がかかるとマクロ内のコ... ichinose 04/5/10(月) 10:40 回答
【13633】Re:シート名の変更がかかるとマクロ内のコ... Jaka 04/5/10(月) 10:41 回答
【13634】忘れ。 Jaka 04/5/10(月) 10:51 発言
【13636】Re:シート名の変更がかかるとマクロ内のコ... ぴかる 04/5/10(月) 11:31 回答
【13640】Re:シート名の変更がかかるとマクロ内のコ... BOTTA 04/5/10(月) 13:24 回答
【13645】Re:シート名の変更がかかるとマクロ内の... megu 04/5/10(月) 15:10 お礼

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