Saskiaは、マクロの制御下で情報を変換する際に問題が発生しましたが、それでもExcelで使用できます。彼女が小数点でフォーマットされた数値を示すワークシートを受け取ったとき、彼女は値を変換して、オランダでの数値の表示方法と一致する小数点コンマを使用する必要がありました。彼女は検索と交換を行い、すべてが正常に機能します。ただし、検索と置換を行うマクロを記録すると、結果のセルは数値ではなくテキストとして扱われました。

この動作の理由は、Excel VBAがアメリカ人を「話す」ためであり、記録されたマクロを使用して実行された一部のアクションは、その事実のために期待どおりに機能しません。 American Excelは小数点記号がピリオドであることを想定しているため、VBAの「数値」を別の区切り文字(コンマなど)で解釈すると、Excelは値をテキストと見なします。

回避策は、検索と置換を使用するのではなく、別のトリックを使用することです。次の短いマクロについて考えてみます。

Sub ConvertNumbers()

Dim oConRange As Range     Set oConRange = ActiveSheet.UsedRange.Cells.SpecialCells(xlConstants)

oConRange.Value = oConRange.Value End Sub

このマクロは、定数を含むすべてのセルで構成される範囲を定義します。次に、各セルの値をそれ自体と等しい範囲に設定します。これを行う過程で、Excelは各セルの内容を再評価し、適切な数値に変換します。つまり、小数点を含む数値は、小数点コンマを含む数値に変換されます。

マクロを使用してセルを処理する方法は他にもありますが、上記の手順が最も効果的かつ迅速に機能するようです。

注:

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

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

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

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

link:/ excel-Replacing_and_Converting_in_a_Macro [マクロでの置換と変換]