Melは、セルの範囲内にあるものの先頭に文字を付加したいことがよくあります。たとえば、テキストの先頭に文字を追加したい(つまり、「123」は「A123」になり、「xyz」は「Axyz」になります)、またはアポストロフィを追加したい(つまり、「123」は「」になります)。 123 “および” xyz “

は” ‘xyz “になります)。 Melは、これがFind andReplaceを使用して実行できるかどうか疑問に思います。

簡単に言えば、それはできないということです。 Excelの検索および置換機能は、ワイルドカードを検索し、置換されるものに「検索対象」テキストを使用する機能があるWordの機能よりも制限されています。 (これらは、Excelの検索と置換にない機能の2つの例にすぎません。)

したがって、考えられる答えの1つは、データをWordにコピーし、[検索と置換]を使用して変更を加えてから、データをコピーして戻すことです。もちろん、ラウンドトリップでフォーマットが失われ、精度の一部が失われ、すべての数式結果が静的な値に変換されるリスクがあります。多くのユーザーにとって、これらは許容できるリスクではありません。

もう1つのオプションは、Excelの連結機能を使用することです。たとえば、事前に付加する値が列A(A1で始まる)にある場合、次のような式を使用します。列B:

="A" & A1

結果は、A1にあるものすべてに文字Aを付加します。これは、アポストロフィ以外のものをプリペンディングする場合に機能します。アポストロフィをプリペンドしようとすると、「123」または「xyz」になりますが、セルにアポストロフィが表示されます。結果は、Excelの場合、アポストロフィの後に123を入力するか、アポストロフィの後にxyzを入力するのと同じではありません。 (入力の場合、アポストロフィはセルの内容をテキストとして処理する必要があることを示し、アポストロフィは数式バーにのみ表示され、セル自体には表示されません。)

一連のセルの値を実際に変更したい場合(検索と置換を使用することをお勧めします)、実行できるのはマクロを使用して変更を加えることだけです。設定値(123など)で始まるセルの前に文字(Aなど)を付けるだけの場合は、単純なマクロで十分です。

Sub Prepend1()

ToFind = "123"

ToFindLength=Len(ToFind)

ToPrepend = "A"



For Each rcell In Selection         If LCase(Mid(rcell.Value, 1, ToFindLength)) =  LCase(ToFind) Then             rcell.Value = ToPrepend & rcell.Value         End If     Next End Sub

ToFind変数には、プリペンドする開始テキストが含まれ、ToPrepend変数には、その文字列の前に表示するテキストが含まれることに注意してください。この場合、セルの範囲を選択してマクロを実行すると、123で始まるもの(「123」または「12345」

または「123D27X」など)の前に文字Aが追加されます。セル。

ただし、このようなマクロは、123で始まるセルだけでなく、範囲内のすべてのセルの先頭に文字を追加する場合には役立ちません。

その場合、別のアプローチが必要です。

Sub Prepend2()

Dim rng As Range     Dim c As Range     Dim ToPrepend As String

ToPrepend = "A"



' Process only text and number constants     Set rng = Selection.SpecialCells(xlCellTypeConstants, 3)



For Each c In rng         c.Value = ToPrepend & c.Value     Next c End Sub

このマクロは、実行前に選択したセルのサブセット(テキストと数値を含むセルのみ)を取得し、ToPrepend変数の内容をセルの先頭に追加します。接頭辞を変更する場合は、変数の値を変更するだけです。 (ToPrependをアポストロフィに変更すると、アポストロフィがプリペンドされているセルは、入力してアポストロフィの後にセル値が続く場合とまったく同じように動作することに注意してください。)

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

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

このヒント(12239)は、Microsoft Excel 2007および2010に適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excel-Using_Find_and_Replace_to_Pre-Pend_Characters [検索と置換を使用して文字をプリペンドする]