コンマをピリオドに置き換える(Microsoft Excel)
Jeanは、数値の表でコンマをピリオドに置き換える必要があります。彼はフランスのPCを使用してフランスで働いていますが、Excel以外のアメリカのアプリケーションでは、これらの数値を「変換」する必要があります。彼が手動で検索と置換を行うと、すべてがうまく機能します。もちろん、彼の数字は文字列に変換されますが、それはJeanで問題ありません。彼がマクロで同じ検索と置換操作を実行しようとしても、何も起こりません。カンマは無視されているようです。 Jeanは、毎回手動で実行する必要はなく、マクロでこのタスクを実行する方法を考えています。
Excelが地域設定として使用するものを一時的に変更して、Jeanが望むように情報を表示できるようにするのは比較的簡単です。次のマクロは、目的の設定をかなり手軽に切り替えます。
Sub ChangeNumberFormat() With Application .UseSystemSeparators = False If .DecimalSeparator = "." Then .DecimalSeparator = "," .ThousandsSeparator = "." Else .DecimalSeparator = "." .ThousandsSeparator = "," End If End With End Sub
これにより、情報の表示方法が変わり、Excel以外の形式(CSVなど)に情報をエクスポートできます。完了したら、マクロを再度実行すると、地域の設定が元の状態に戻るはずです。このアプローチの利点は、セルの内容を実際に変更することはなく、その情報の表示方法だけを変更できることです。これは、あなたの番号が番号のままであり、そのように使用され続けることができることを意味します。
より直接的なものが必要な場合は、検索と置換を使用しないのがおそらく最善です。代わりに、マクロを使用して、各セルの内容を直接変更します。このようなアプローチは、マクロであっても、検索と置換に依存するよりもはるかに高速に実行できます。この概念の簡単なアプリケーションは次のとおりです。
Sub SwitchCommasPeriods() Dim c As Range Dim sTemp As String For Each c In Selection sTemp = c.Text sTemp = Replace(sTemp, ",", "|") sTemp = Replace(sTemp, ".", ",") sTemp = Replace(sTemp, "|", ".") c = sTemp Next c End Sub
マクロ内のいくつかのことに注意してください。まず、各セルのTextプロパティを調べます。これは、Textプロパティがセルのフォーマットされた値、つまり表示される値を返すためです。 (Valueプロパティを見るだけで、フォーマットされていない数値が得られますが、これは使用したいものではありません。)
2番目に注意すべき点は、置換機能を使用して、最初にすべてのコンマを垂直バーに置き換え、次にすべてのピリオドをコンマに、最後にすべての垂直バーをピリオドに置き換えることです。基本的にテキスト内のピリオドとコンマを交換するため、このアプローチが必要です。
マクロを使用するには、影響を与えるセルを選択して実行するだけです。選択したセルのみが処理されます。セルに数式が含まれている場合、マクロはその数式を数式の処理結果に置き換えます。ただし、これはJeanの目的には問題ないはずです。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(13675)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。