ワークシートとコメントを同時に置き換える(Microsoft Excel)
ドロシーの生徒たちは、小切手帳シミュレーションワークブックをカスタマイズして、デフォルトの名前を自分の名前に置き換えています。たとえば、彼女は彼らに「ジェイソンアンダーソン」を検索し、名前を「スースミス」に置き換えてもらいたいと考えています。
8つのワークシートタブ全体のテキストボックスに22回の「ジェイソンアンダーソン」があり、ワークシート自体にさらにいくつかあります。
ドロシーは、すべてのワークシートオカレンスとすべてのコメントオカレンスを一度に検索して置き換える方法を考えています。
マクロを使用せずにこれを行う方法はありません。マクロは、ワークブックの各セル、各コメント、および各テキストボックスを調べて、変更が必要かどうかを確認する必要があります。これを行う方法の例を次に示します。
Sub ReplaceNames() Dim sDefaultName As String Dim sNewName As String Dim sht As Worksheet Dim cmt As Comment Dim wks As Worksheet Dim sCmt As String Dim shp As Shape sDefaultName = "Jason Anderson" sNewName = InputBox("Enter your first and last name.", _ "Name Replacement") ' Replace cell text For Each sht In ActiveWorkbook.Worksheets sht.Cells.Replace what:=sDefaultName, _ Replacement:=sNewName, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, _ SearchFormat:=False, ReplaceFormat:=False Next sht ' Replace comment text For Each wks In ActiveWorkbook.Worksheets For Each cmt In wks.Comments sCmt = cmt.Text If InStr(sCmt, sDefaultName) <> 0 Then sCmt = Application.WorksheetFunction. _ Substitute(sCmt, sDefaultName, sNewName) cmt.Text Text:=sCmt End If Next cmt Next wks Set wks = Nothing Set cmt = Nothing ' Replace text box text On Error Resume Next For Each wks In ActiveSheet.Parent.Worksheets For Each shp In wks.Shapes With shp.TextFrame.Characters .Text = Application.WorksheetFunction.Substitute( _ .Text, sDefaultName, sNewName) End With Next shp Next wks End Sub
マクロは、ユーザーに新しい名前の入力を求め、セル、コメント、およびテキストボックスを検索して、デフォルト名( “Jason Anderson”)が出現するかどうかを確認します。その場合、適切な交換が行われます。
マクロを使用して検索を実行したくない場合は、ブックの再構築が役立つ可能性があります。たとえば、人の名前などの一般的な情報を入力する「データ入力ワークシート」を作成できます。他のワークシートでは、データ入力ワークシートの名前は数式を使用して参照されます。したがって、データ入力ワークシートが1つ変更され、他のすべてのワークシートでは名前が変更されます。
このアプローチを使用すると、コメントでも機能します。コメントまたは図形を選択し、数式バーに次のような参照数式を入力できます。
=MyName
これは、データ入力ワークシート上のユーザーの名前がMyNameの名前付き範囲に関連付けられていることを前提としています。コメントまたは図形に追加情報が必要な場合は、データ入力ワークシートのセルにそのテキストを作成し、MyNameの名前付き範囲に記載されているように、そのセルの内容をコメントまたは図形に割り当てることができます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2614)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。