リチャードは、セルの左端の位置にあるアポストロフィ( ‘)を検索できるようにしたいと考えていますが、Excelでは検索できません。つまり、セルに「123」または「a34tp」が含まれている場合、リチャードはその先頭のアポストロフィを見つけて、オプションで別のアポストロフィに置き換えることができるようにしたいと考えています。

リチャードがやりたいことをするには、少し予備的な説明が必要です。

技術的には、アポストロフィを「主人公」と呼んだり、セルの「左端の位置」にあると言及したりするのは誤った呼び方です。数式バーを見て、数式の先頭にアポストロフィが表示されている場合でも、そのアポストロフィは実際にはセルの内容の一部ではありません。そのため、検索と置換を使用して検索と置換を行うことはできません。

アポストロフィは、実際にはセルの「プレフィックス文字」と見なされます。

プレフィックス文字の可能な値は、Excelの[トランジションナビゲーションキー]設定によって設定され、設定の値はワークブックごとに保存されます。この設定は、[オプション]ダイアログボックスの[遷移]タブを使用して変更できます。

設定がクリアされている場合(設定のデフォルト条件)、各セルのプレフィックス文字の値は空白またはアポストロフィのいずれかになります。セルにテキストが含まれている場合、プレフィックス文字の設定はそれほど重要ではありません。セルの内容がテキストでない場合、プレフィックス文字をアポストロフィに設定すると、Excelはセルの内容をテキストであるかのように処理します。したがって、たとえば、数値123は数値ではなくテキストとして扱われ、数式バーに「123」として表示されます。

[トランジションナビゲーションキー]設定が選択されている場合(チェックボックスにチェックマークが付いている場合)、各セルのプレフィックス文字の値は5つの異なる値のいずれかになります。これらの値は、Lotus 1-2-3で使用されているプレフィックスと一致しており、奇妙なことに、プログラムでの通常の使用に対する移行支援としてのみExcelでサポートされています。

可能な値は、アポストロフィ(左寄せ)、引用符(右寄せ)、カラット(中央揃え)、円記号(繰り返し)、または空白(非テキスト項目)です。

ここで、リチャードの元の質問に戻ります。その主要なアポストロフィを検索して取り除く方法です。アポストロフィは実際にはセルの内容の一部ではないため、検索と置換を使用して編集を行うことはできません。

したがって、マクロで変更を行う必要があります。変更は比較的簡単です。まず、ブックの[トランジションナビゲーションキー]設定がオフになっていることを確認する必要があります。どうして?将来、Lotus 1-2-3でワークブックを再び使用できる場合は、セルのプレフィックス文字を台無しにしたくないと思われるためです。次の行を使用して、マクロで設定が正しいことを確認します。

Application.TransitionNavigKeys = False

次に、選択したセルをステップ実行して、各セルのプレフィックス文字がアポストロフィであるかどうかを確認できます。そうである場合は、次の方法で、マクロにセルの内容を手動で再入力するのと同じことを実行させるだけです。

For Each c In Selection     If c.PrefixCharacter = "'" Then         c.Value = c.Value     End If Next c

マクロはPrefixCharacterプロパティの内容をチェックすることに注意してください。このプロパティはVBAで読み取ることができますが、直接変更することはできません。そのため、マクロは一見単純な行を使用して、各セルの値をセルに割り当て、基本的に内容を再入力する必要があります。

マクロを使用してアポストロフィプレフィックス文字を削除したくない場合は、PasteSpecialの奇妙な小さな癖を利用できます。次の一般的な手順に従ってください:

。空白のセルを選択し、クリップボードにコピーします(Ctrl + Cを使用)。

。プレフィックス文字を削除するセルの範囲を選択します。

。 [形式を選択して貼り付け]ダイアログボックスを表示します。

。 [追加]ラジオボタンをクリックします。

。 [OK]をクリックします。

空白のセルを各ターゲットセルに「追加」した後、プレフィックス文字(存在する場合)が削除されます。

注:

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

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

このヒント(3332)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。