Note: The other languages of the website are Google-translated. Back to English

シートタブ名をExcelのセル値と等しくする方法は?

場合によっては、指定したセル値に基づいてワークシートの名前を変更する必要があります。 この記事では、シートタブ名をExcelのセル値と等しくする方法を紹介します。

シートタブ名をVBAコードでセル値と等しくする
Kutools for Excelを使用して、シートタブ名をセル値と等しくする


シートタブ名をVBAコードでセル値と等しくする

次のVBAコードを使用すると、シートタブ名をセル値と自動的に等しくすることができます。

1.シート名をセル値と等しくするシートタブを右クリックし、をクリックします コードを表示 右クリックメニューから。 スクリーンショットを参照してください:

2.以下のコードをコピーしてコードウィンドウに貼り付け、を押します。 他の + Q キーを同時に押して、Microsoft Visual Basic forApplicationsウィンドウを閉じます。

VBAコード:シートタブをセル値と等しくする

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20230130
    On Error Resume Next
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    ElseIf Not Intersect(Target.Dependents, Range("A1")) Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    End If
End Sub

注意:コードでは、A1はシート名として使用する必要のある値を含むセルです。 必要に応じて変更できます。

これ以降、セルA1の値が変更されると、シートタブ名も同様に変更されます。


Kutools for Excelを使用して、シートタブ名をセル値と等しくする

このセクションでは、 複数のワークシートの名前を変更する の有用性 Kutools for Excel。 このユーティリティを使用すると、Excelで特定のセルの値を使用してワークシートの名前を簡単に変更できます。

申請する前に Kutools for Excelについては 最初にダウンロードしてインストールします.

1。 クリック クツールズプラス > ワークシート > 複数のワークシートの名前を変更する。 スクリーンショットを参照してください:

2。 の中に 複数のワークシートの名前を変更する ダイアログボックスでは、次のようにする必要があります。

1)。 名前を変更するワークシート名を ワークシート ボックス(XNUMX枚または複数枚選択可能)。
2)。 選択する 元のシート名を置き換える 内箱 オプションの名前変更 の項目を検索します。
3)。 指定したセルの値でXNUMXつまたは複数のワークシートの名前を変更する場合は、 特定の範囲から オプションをクリックし、シートの名前を変更するセルの範囲を選択します。
4)。 クリック OK ボタン。 スクリーンショットを参照してください:

以下のスクリーンショットに示すように、選択したワークシートの名前が指定した範囲値ですぐに変更されていることがわかります。

免責事項:

1。 あなたは フィルタ ワークシートがたくさんある場合に必要なワークシートを簡単に除外する機能。
2.各シートの特定のセル値で複数のワークシートの名前を変更する場合。 たとえば、sheet1はそのセルA1の値と等しくなり、sheet2もそのセルA1の値と等しくなります。 でワークシートを選択してください ワークシート ボックスをクリックし、 ワークシートの名前を特定のセルに変更する オプションを選択し、ボックスにセルA1を指定します。

3.セルの値が変更されても、シート名は自動的に変更されません。

  無料トライアルをご希望の方は(30-day) このユーティリティの クリックしてダウンロードしてください、次に、上記の手順に従って操作を適用します。


Kutools for Excelを使用して、シートタブ名をセル値と等しくする


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (28)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
指示どおりにこれを貼り付けましたが、使用可能なマクロのリストに表示されませんでした。 マクロ名を入力して手動で実行してみました。 マクロを実行しようとすると、「引数はオプションではありません」というエラーメッセージが表示されました。

プライベートサブワークシート_Change(ByValターゲットを範囲として)
交差しない場合(Target、Range( "A1"))は何もありません
ActiveSheet.Name = ActiveSheet.Range( "A1")
終了する場合
End Subの

他の誰かがこのコードを実行し、同じ問題を抱えていましたか?

テストとして、より基本的なコードを実行しましたが、正常に機能したため、「A1」の値で問題が発生することはありません。 以下のコードを実行すると、マクロリストにマクロ名「myTabName」が表示されます。 上記のコードは表示されません。これはバグ/引数がないためだと思います。

サブmyTabName()
ActiveSheet.Name = ActiveSheet.Range( "A1")
End Subの

セルの値に基づいてタブ名の変更を自動化するためのコードを使用したいので、ご協力いただきありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
親愛なるジェイソン、
私の場合、コードはうまく機能します。 Officeバージョンを提供していただけますか? コメントありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
こんにちはクリスタル、

私にとってもうまくいきませんでした。参照しているセルが数式であるためでしょうか?

回答ありがとうございます
このコメントは、サイトのモデレーターによって最小化されました
こんにちはメイ、

ご意見ありがとうございます。 問題は式によって引き起こされました。 コードが変更されました。 ぜひお試しください。

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20230130
    On Error Resume Next
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    ElseIf Not Intersect(Target.Dependents, Range("A1")) Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    End If
End Sub
このコメントは、サイトのモデレーターによって最小化されました
このコードを機能させていますが、別のセルを参照している場合(およびそのセルが変更された場合)、名前を取得するセルがタブ名を自動的に更新しません。


つまり、マスターリストのセルを変更します。これにより、コードがタブ名として参照している各タブの特定のセルのセルテキストが変更されますが、タブはそれに応じて名前を更新しません。
このコメントは、サイトのモデレーターによって最小化されました
良い一日、
次のVBAコードで問題を解決できます。 コメントありがとうございます1

プライベートサブワークシート_Change(ByValターゲットを範囲として)
xRg As Range、xCellAsRangeを暗くします
エラーで次の再開
交差しない場合(Target、Range( "A1"))は何もありません
ActiveSheet.Name = ActiveSheet.Range( "A1")
終了する場合
Application.EnableEvents = False
xRg = ActiveSheet.Range( "A1")。Precedentsを設定します
xRgがない場合は何もありません
xRgの各xCellについて
ActiveSheet.Name = ActiveSheet.Range( "A1")
次へ
終了する場合
application.enablevents = true
End Subの
このコメントは、サイトのモデレーターによって最小化されました
それでも動作しません。 jJJと同じ問題が発生しています。 クリスタル:コード全体が返信に表示されていますか?
コメントに表示される最後の行は、「Set xRg = ActiveSheet.Range( "A1")。Precedents」です。
このコメントは、サイトのモデレーターによって最小化されました
親愛なるJAS、
コメント全体を表示するには、コメントの右側にある[続きを読む]ボタンをクリックしてください。
このコメントは、サイトのモデレーターによって最小化されました
まだ同じ問題があります。

新しいシートのA1が別のタブの別のセルを指している。 初回(実行時)に更新されますが、マスターセルの編集時に変更はありません
このコメントは、サイトのモデレーターによって最小化されました
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
ターゲットの設定=Range( "A1")
Target = ""の場合、Subを終了します
エラー時GoToBadname
ActiveSheet.Name = Left(Target、31)
サブを終了
悪い名前:
MsgBox「A1のエントリを修正してください。」 &Chr(13)_
&"13つ以上含まれているようです"&Chr(XNUMX)_
&「違法な文字」。 &Chr(13)
範囲("A1").Activate
End Subの
このコメントは、サイトのモデレーターによって最小化されました
まだ問題は同じですが、初めて変更されます。 そのセルを別のシートにリンクして変更すると、自動的に変更されません
このコメントは、サイトのモデレーターによって最小化されました
このコードを使用する必要がありますが、これまでvbaコードを入力したことはありません。 任意のガイダンスをいただければ幸いです。
このコメントは、サイトのモデレーターによって最小化されました
マスターリストのセルを変更します。これにより、コードがタブ名として参照している各タブの特定のセルのセルテキストが変更されますが、タブはそれに応じて名前を更新しません。

----動作しません
このコメントは、サイトのモデレーターによって最小化されました
私はコード全体を手に入れました、そしてそれはうまくいきました。 手伝ってくれてどうもありがとう!
このコメントは、サイトのモデレーターによって最小化されました
親愛なるJAS、
お役に立ててうれしいです。
このコメントは、サイトのモデレーターによって最小化されました
むしろ単純なマクロを使用できます



サブMacro3()
整数としての薄暗いインデックス
インデックスの場合=1から18

Sheets(index).Name = Sheets(index).Range( "A2")。Value

次のインデックス



End Subの
このコメントは、サイトのモデレーターによって最小化されました
グッド·デイ、
共有していただきありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
これはまさに私が必要としているものですが、日付を再作成するためのタブが必要ですが、機能していません...これはExcelが日付と時刻を計算する方法と関係があると思いますが、誰かが回避策を提案できますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、ニック、
Excelは、特殊文字を含むシート名の入力をサポートしていません。 入力した日付に文字/が含まれている場合、その日付でシート名を作成することはできません。
このコメントは、サイトのモデレーターによって最小化されました
XNUMXつのセルを参照するにはどうすればよいですか。 たとえば、名前とID番号?
このコメントは、サイトのモデレーターによって最小化されました
上記の正確なコードをVBAコードに使用しています。これは、必要なものに対して完全に機能します。 ただし、ジョブテンプレートと呼ばれるシートには、新しいジョブごとにコピーされて再利用されるマクロがたくさんあります。 すべてのマクロは、ジョブテンプレート(2)と呼ばれる新しいコピーバージョンに基づいて設計しました。 シート名が新しいジョブ名に変更されると、マクロは機能しなくなり、手動で実行する必要があります。 シート名を変更する前にマクロボタンだけを使用するのではなく、いつでもマクロボタンを使用できるようにしたいと思います。

残りのコード関数を実行する前に、VBAコードが常にシート名を参照する方法はありますか?
このコメントは、サイトのモデレーターによって最小化されました
Kutools Plusを介して名前を変更できるワークシートの最大数はいくつですか? なぜなら、17の名前だけを変更できるという優れた点です。それだけです。
このコメントは、サイトのモデレーターによって最小化されました
これは私の最初のワークシートでは完全に機能しましたが、20番目やXNUMX番目などでは機能しませんでした(すべてこの機能を必要とするワークシートは最大約XNUMX個あります)。 私は何かが足りないのですか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちはオーウェン、
このコードは、一度にXNUMXつのワークシートに対してのみ機能します。 ご不便おかけしてすみません。
このコメントは、サイトのモデレーターによって最小化されました
こんにちはクリスタル、

コードを貼り付けると、「ユーザー定義型が定義されていません」というエラーが返されますか?

ありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
トム J さん、こんにちは。
[参照 - VBAProject] ダイアログ ボックスで、これら XNUMX つのオプションがオンになっていることを確認します。
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/error.png
このコメントは、サイトのモデレーターによって最小化されました
美しく働きました!
このコメントは、サイトのモデレーターによって最小化されました
ボンジュール、
que voulez-vous dire par appuyer autre autre+q dans le code vba après avoir collé.
J'ai simplement fermé la page après avoir colle et ça ne marche pas
ありがとう
ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護