[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート名をセルの値に』(ちぃさん)
お世話になります。
G8の値をエラー表示がでないようにしてシートの名前にしたいです。
現在ThisWorkbookに
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$G$8" Then Sh.Name = Target.Range("A1").Value '$G$8が転記元 A1は固定
End Sub
としています。
仮にSheet1のG8に a と入力します。
Sheet1のシート名は a となります。
このSheet1をコピーするとシート名は a(2) となります。
a(2) のG8に a と入力すると同じシート名が2つになるのでエラーがでます。
実行時エラー'1004
シートの名前をほかのシート、Visual Basic で参照されるオブジェクトライブラリまたはワークシートと同じ名前に変更することはできません。
↑
このエラー表示をさせず同じシート名となる値が入力されたら「同じ名前があります」と表示させてたいのですができますでしょうか?
どうか宜しくお願いいたします。
< 使用 Excel:Excel2003、使用 OS:WindowsXP >
A1セルに入力された値のシートが存在するか否か判定します。
Sub test() Dim mybl As Boolean Dim wsmei As String wsmei = Range("A1").Value Err.Clear On Error Resume Next mybl = IsObject(Worksheets(wsmei).Range("A1")) If Err.Number = 9 Then mybl = False On Error GoTo 0 MsgBox mybl End Sub (カリーニン) 2014/10/23(木) 21:45
試してみました。
すみません。
私の試し方が悪いとおもうのですが同じシート名がない時はTrueが表示されシート名が変更されます。
同じ名前がある時はまたエラーがでます。
実行時エラー'1004
シートの名前をほかのシート、Visual Basic で参照されるオブジェクトライブラリまたはワークシートと同じ名前に変更することはできません。
なぜでしょうか?(汗)
もしよければお助けいただけないでしょうか。
宜しくお願いいたします。
(ちぃさん) 2014/10/23(木) 22:24
解決しました。
ありがとうございました。
(ちぃさん) 2014/10/23(木) 22:41
>Target.Range("A1").Value
単なる Target.Value と違うケースがありますか? すぐには思いつかなかったので、質問してみました。
(マナ) 2014/10/24(金) 22:07
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.