[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート名をドロップダウンリストで選択した文字に変更したい。』(sige)
VBA初心者です。
シート名をドロップダウンリストで選択した文字に変更したいです。
いろいろ調べて下記のコードでできそうなことが分かりました。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$A$1" Then Sh.Name = Target.Range("A1").Value End Sub
実際にこの通り入力すると変更できたのですが、A1以外のセルに変更するとなぜかエラーが出てしまい変更できません。
いろいろ試したのですが、なぜかA1の場合だけ変更できました。
ご教授願います。
< 使用 Excel:Excel2007、使用 OS:Windows10 >
エラーの内容は?
ドロップダウンリストの内容は共通なのですか?
シート名に出来ない文字が含まれていませんか?
(ウッシ) 2016/06/24(金) 16:46
Sh.Name = Target.Range("A1").Value ここが問題ですね。
例えば、以下のように直したかと思います。
If Target.Address = "$A$2" Then Sh.Name = Target.Range("A2").Value
このマクロが動作したということは、いまA2セルに入力した、ということ。
すると、Target.Range("A2") とは、Range("A2").Range("A2") ということになり、次のセルの値の意味(次の行になるので、A3セル)になってしまいます。
以下のように直してみてください。
If Target.Address = "$A$2" Then Sh.Name = Target.Value (???) 2016/06/24(金) 16:50
アドバイス頂いた通り、
If Target.Address = "$A$2" Then Sh.Name = Target.Value と直したところほかのセルでも変更できました!
こんな簡単なことだったんですね…
本当にありがとうございました。
もっと勉強したいと思います。
(sige) 2016/06/24(金) 17:03
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.