[[20141023205154]] 『シート名をセルの値に』(ちぃさん) ページの最後に飛ぶ

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

 

『シート名をセルの値に』(ちぃさん)

お世話になります。

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.