タブをダブルクリックして新しい名前を指定することで、ワークシートタブの名前を変更できることはすでにご存知でしょう。ただし、動的に実行したい場合はどうなりますか?セルA1の値をタブ名として自動的に表示したい場合はどうすればよいですか?

残念ながら、Excelはこの種のタスクを処理するための組み込み関数を提供していません。あなたのために仕事をするマクロを使ってそのような関数を開発することは比較的簡単な仕事です。たとえば、次のマクロはタブ名をA1の内容に変更します:

Sub myTabName()

ActiveSheet.Name = ActiveSheet.Range("A1")

End Sub

このマクロについて注意すべき重要な項目がいくつかあります。まず第一に、エラーチェックはありません。これは、A1にタブ名に対して無効な値が含まれている場合、マクロがエラーを生成することを意味します。

次に、マクロを手動で実行する必要があります。

エラーをチェックして自動的に実行する、より堅牢なマクロが必要な場合はどうなりますか?結果は少し長くなりますが、それでもそれほど複雑ではありません:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Set Target = Range("A1")

If Target = "" Then Exit Sub     On Error GoTo Badname     ActiveSheet.Name = Left(Target, 31)

Exit Sub Badname:

MsgBox "Please revise the entry in A1." & Chr(13) _     & "It appears to contain one or more " & Chr(13) _     & "illegal characters." & Chr(13)

Range("A1").Activate End Sub

このマクロを設定するには、次の手順に従います。

。ワークシートが1つしかない新しいブックを開きます。

。ワークシートタブを右クリックし、表示されるコンテキストメニューから[コードの表示]を選択します。 ExcelはVBAエディタを表示します。

。上記のマクロをコードウィンドウに貼り付け(または入力)します。

。 VBAエディターを閉じます。

。システム上のXLStartフォルダーを見つけます。 (Windowsサーチ機能を使用してフォルダーを見つけます。)

。 XLStartディレクトリでBook.xltmという名前を使用して、ブックをExcelマクロ対応テンプレートとして保存します。これにより、テンプレートが、作成する新しいワークブックのパターンになります。

。再度、ワークブックをマクロ対応テンプレートとして同じディレクトリに保存します。今回は、Sheet.xltmという名前を使用します。これにより、テンプレートは、ワークブックに挿入する新しいワークシートのパターンになります。

。 Excelを閉じて再起動します。

これで、セルA1の値を変更するたびに、ワークシートタブも更新されます。

このヒントを使用する際の注意点が1つあります。セルA1の値が日付であり、ワークシートタブにその日付を含めたい場合、期待どおりの結果が得られない可能性があります。理由は単純です。Excelは日付をシリアル番号として内部的に保存します。これは、フォーマットされた日付ではなく、ワークシートタブに割り当てられるものです。日付を使用している場合は、タブ名に実際に割り当てられているものを変更する必要があります:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Set Target = Range("A1")

If Target = "" Then Exit Sub     On Error GoTo Badname     ActiveSheet.Name = Format(Target, "mmm-dd-yy")

Exit Sub Badname:

MsgBox "Please revise the entry in A1." & Chr(13) _     & "It appears to contain one or more " & Chr(13) _     & "illegal characters." & Chr(13)

Range("A1").Activate End Sub

ここでの唯一の変更は、ワークシートのNameプロパティに割り当てられているものであり、フォーマットされた日付であることに注意してください。必要に応じて、マクロで使用される日付形式を変更できます。ただし、スラッシュを使用する形式はワークシート名では違法であるため、選択しないでください。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(7993)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります: