プロが教える店舗&オフィスのセキュリティ対策術

ワークシートが複数あるのですが、特定の文字があるシート名を変更したいと思っていますが
構文をご教授頂けないでしょうか?


ワークシートsheet1
ワークシートsheet2
の中で、どこかのセルに「データ」と入力されている方のシート名を「data」に変更したいです。
しかし、どちらのシートにも含まれていない場合、もしくはどちらにも含まれてしまっている場合は
何もせずに処理を終了させます。

A 回答 (2件)

こんばんは!



一例です。
標準モジュールにしてください。

尚、「sheet1」と「sheet2」はシート見出しの左から1番目・2番目のシートだという前提です。

Sub Sample1()
 Dim k As Long, c As Range
  For k = 1 To 2
   With Worksheets(k)
    Set c = .Cells.Find(what:="データ", LookIn:=xlValues, lookat:=xlWhole)
     If Not c Is Nothing Then
      .Name = "data"
      Exit For
     End If
   End With
  Next k
End Sub

※ 万一、両方のシートに「データ」という文字を含むセルが存在した場合、
同一シート名は付けられないので、
最初にヒットしたシートだけのシート名変更になります。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございました。
意図通りの結果を出すことが出来ました。

お礼日時:2019/08/16 18:37

シート名の変更は手入力ですが、その文字列が含まれるシートは一発で探せます。



上部アイコンから「検索と置換」もしくはメニューバーの編集タブから「検索と置換」を選択。

検索ウィンドウが出るので検索欄に「データ」と入力して、対象を「すべてのシート」とし、「すべて検索」を実行。
「データ」という文字列が含まれるセルの一覧表が出ますので、その表からどのシートに含まれているかをメモって、手作業で該当シート名を変更してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
今回VBAの処理中に本内容を盛り込みたかったので質問させていただきました。

お礼日時:2019/08/16 18:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!