テキストボックス内の検索と置換(Microsoft Excel)
Davidは、検索と置換を使用して、テキストボックスまたはグラフのラベル内のテキストを検索および変更できるかどうか疑問に思います。簡単に言えば、それは不可能ですが、試すことができるいくつかの回避策があります。
まず、テキストボックスまたはグラフラベルのテキストを簡単に動的にして、一部のワークシートセルのコンテンツに関連付けることができます。たとえば、テキストボックスに対して次のようにすることができます。
。各テキストボックスからワークシートのセルの範囲にテキストをコピーします。 (この例では、10個のテキストボックスの内容をZ1:Z10の範囲にコピーしたと仮定します。)
。最初のテキストボックス(セルZ1に対応するテキストボックス)を選択し、テキストボックスの内容を削除します。
。テキストボックスを選択したまま、数式バーに次のように入力します:= Z1。 Enterキーを押すと、テキストボックスにセルZ1の内容が反映されます。
。手順3のそれぞれに適切なセル参照を使用して、他のテキストボックスごとに手順2と3を繰り返します。
それでおしまい。カスタムグラフラベルでも同じ手法を使用できます。必要なのは、グラフラベルを選択し、数式バーにセル参照を入力することだけです。ワークシートのセルに関連付けられたテキストボックスとグラフのラベルを使用すると、検索と置換を使用して、セル内の情報を簡単に検索および変更できます。変更が行われると、テキストボックスとグラフのラベルにセルの変更が自動的に反映されます。
テキストボックスまたはグラフラベル内のテキストを実際に変更する唯一の方法は、手動で変更するか、マクロを使用して変更することです。コードは、ワークシートの各テキストボックスをステップスルーしてから、変更を加える必要があります。以下は、そのような変更を行うことができるマクロの単純なバージョンです。
Sub TextBoxReplace() Dim shp As Shape Dim sOld As String Dim sNew As String 'Change as desired sOld = "Old string" sNew = "New string" On Error Resume Next For Each shp In ActiveSheet.Shapes With shp.TextFrame.Characters .Text = Application.WorksheetFunction.Substitute( _ .Text, sOld, sNew) End With Next End Sub
このマクロは、ワークシート内のすべての図形(テキストボックスは図形)をステップスルーしてから、sOld変数にあるものをsNew変数にあるものに置き換えます。次のマクロに示すように、同じ手法をグラフラベルに適用するのは少し複雑です。
Sub ChartLabelReplace() Dim Cht As ChartObject Dim Ser As Series Dim scPt As Point Dim sOld As String Dim sNew As String 'Change as desired sOld = "Old String" sNew = "New String" On Error Resume Next For Each Cht In ActiveSheet.ChartObjects For Each Ser In Cht.Chart.SeriesCollection For Each scPt In Ser.Points With scPt.DataLabel .Text = Application.WorksheetFunction.Substitute( _ .Text, sOld, sNew) End With Next Next Next End Sub
マクロは、すべてのグラフのすべてのデータ系列の各データラベルをステップスルーし、(再び)sOldにあるもののインスタンスをsNewにあるものに置き換えます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(9264)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkテキストボックスでの検索と置換。