Excel 2007 の別のワークシートのセルの情報でシート名を更新したいと考えています。特定のワークシート名 (ブック内のすべてのワークシートではなく) のみを変更したいのですが、これらのワークシートの情報は同じワークシート内のセルから取得されます。 . セルが変更されるとすぐにシート名にこれらの変更を加えたいと思います。
ありがとう。
Excel 2007 の別のワークシートのセルの情報でシート名を更新したいと考えています。特定のワークシート名 (ブック内のすべてのワークシートではなく) のみを変更したいのですが、これらのワークシートの情報は同じワークシート内のセルから取得されます。 . セルが変更されるとすぐにシート名にこれらの変更を加えたいと思います。
ありがとう。
あなたは次のようなものを使いたい
Sub changeName()
ThisWorkbook.Sheets("nameToBeChanged").Name = ThisWorkbook.Sheets("secondSheetName").Range("A1").Value
End Sub
これにより、シートのセル A1 の値が というシートsecondSheetName
の名前として使用されnameToBeChanged
ます。
次の文字はシート名に使用できないことを忘れないでください (つまり、セル A1 に次の文字を含めることはできません)。
\ / ? * [ ] < > " | :
シート名の最大長は 31 文字です
そして、セルの値が変更されるとすぐにそれを行うには、イベントを使用します。このコードから始めることができます:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "Value changed for cell: " & Target.Address
Call changeName
End Sub
イベントをリッスンするシート (もちろん VBA ウィンドウ内) にそのコードを配置する必要があります。
Santosh からの投稿が役に立つかもしれません
編集:これはSantoshの写真です(上記のリンクを参照)。コードを配置する場所を正確に示します。
ご覧のとおり、コードは Sheet1 という名前の項目 (矢印が指している場所) に配置されています。この場合、コードは Sheet1 に配置されているため、変更されたすべてのセルはサブ Worksheet_Change を呼び出します。
あまり試していないようです。
Worksheets
名前とコレクションを使用して、ワークシートにアクセスできます。その後、任意の範囲を使用して、取得する情報を含むセルにアクセスできます。セル B2 にあると仮定します。
Worksheets("ChangeMyName").Name = Worksheets("SomeOtherSheet").Range("B2")
セルが変更されるとすぐに変更されるようにするには、Change イベントを実装し、ターゲット セルと監視対象のセルを比較する必要があります。
http://msdn.microsoft.com/en-us/library/office/ff839775.aspx