[[20160624163044]] 『シート名をドロップダウンリストで選択した文字に』(sige) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シート名をドロップダウンリストで選択した文字に変更したい。』(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.