最近のタスクでは、数値列でVBAを介してフィルター処理を行っていました。しかし、その番号列にはテキスト形式の番号がありました。 VBAスクリプトを実行すると、フィルターが数値であり、列にテキストとして数値が含まれていたため、もちろん機能しませんでした。その場合、テキストを手動で数値に変換して保存する必要がありました。その後、マクロは完全に機能しました。

しかし、VBAスクリプトを使用してこれらのテキストを数値に変換したかったので、それを行うことができました。誰かがVBAを使用してテキスト値を数値に変換する方法を知りたいかのように、これを共有したかったので、彼らはそれを見ることができます。

===

image

Range.NumberFormatメソッドを使用してテキストを数値に変換するこの最初で最も簡単なメソッド。選択したExcelの範囲を数値形式に直接変換するため、他の方法よりもこの方法の方が好きです。

したがって、テキストに変換する固定範囲がある場合は、このVBAスニペットを使用してください。

Sub ConvertTextToNumber()

Range("A3:A8").NumberFormat = "General"

Range("A3:A8").Value = Range("A3:A8").Value

End Sub

上記のコードを実行すると、範囲A3:A8のテキストがテキストに変換されます。

このように書くと、このコードはよりエレガントに見える可能性があります。

Sub ConvertTextToNumber()



With Range("A3:A8")

.NumberFormat = "General"

.Value = .Value

End With

End Sub

どのように機能しますか?

まあ、それは非常に簡単です。まず、範囲の数値形式を[一般]に変更します。次に、VBAを使用してその範囲の値を同じ範囲に入れます。これにより、テキストの書式設定が完全​​に削除されます。簡単ですね。

ダイナミックレンジのフォーマット数を変更する

上記のコードでは、テキストを上記の固定範囲のコードの数値に変更しましたが、ほとんどの場合、これは当てはまりません。テキストをいくつかのダイナミックレンジに変換するには、最後に使用したセルを評価するか、範囲を動的に選択します。

これはそれがどのように見えるかです:

Sub ConvertTextToNumber()

With Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)

.NumberFormat = "General"

.Value = .Value

End With

ここで、私は範囲がA3から始まることを知っています。しかし、どこで終わるのかわかりません。

そのため、データが含まれている `link:/ Tips-how-to-find-the-last-used-cell-in-one-column-in-microsoft-excel-2010 [last used excelrow]`を動的に識別します。 VBAスニペットCells(Rows.Count、1).End(xlUp).Row。 「A3:A」と連結している最後に使用された行番号を返します。

注:このVBAスニペットは、アクティブなワークブックとアクティブなワークシートで機能します。コードが複数のシートを切り替える場合は、目的のワークシートの範囲オブジェクトを設定することをお勧めします。このように

Sub ConvertTextToNumber()

Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)

With Rng

.NumberFormat = "General"

.Value = .Value

End With

End Sub

上記のコードは、常にテキストをこのコードを含むブックのシート1の番号に変更します。

テキストを数値に変更するためのループとCSng別の方法は、CSng関数を使用して、各セルをループし、セルの値を数値に変更することです。これがコードです。

Sub ConvertTextToNumberLoop()

Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)



For Each cel In Rng.Cells

cel.Value = CSng(cel.Value)

Next cel

End Sub

上記のVBAスニペットでは、 link:/ vba-for-loops-with-7-examples [VBA For loop]`を使用して、範囲内の各セルを反復処理し、各セルの値を数値に変換しています。 `link:/ excel-macros-and-vba-what-is-csng-function-in-excel-vba [VBAのCSng関数]

そうですね、これがVBAを使用してExcelでテキストを数字に変更する方法です。これらのスニペットを使用して、数値操作を行う前にワークシートを準備できます。私は十分に説明できたと思います。ここから作業ファイルをダウンロードできます。

`link:/wp-content-uploads-2020-01-Change-Text-to-Number-Using-VBA.xls [VBAを使用してテキストを数値に変更]。

このテキストから数値への変換またはその他のExcel / VBA関連のクエリについて疑問がある場合は、以下のコメントセクションで質問してください。

関連記事:

link:/ formating-in-vba-format-table-depending-on-number-formats-using-vba-in-microsoft-excel [MicrosoftExcelのVBAを使用してカスタム番号形式でデータをフォーマットする] | Excelの特定の列の数値形式を変更するには、このVBAスニペットを使用します。ワンクリックで指定フォーマットから指定フォーマットまでの数値フォーマットをカバーします。

人気の記事:

link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット] |あなたの仕事をより速くしてください。これらの50のショートカットにより、Excelでの作業がさらに高速になります。

ExcelのVLOOKUP関数 |これは、さまざまな範囲やシートから値を検索するために使用される、Excelの最も使用され人気のある関数の1つです。 linkCOUNTIF in Excel 2016 |この驚くべき関数を使用して、条件付きの値をカウントします。特定の値をカウントするためにデータをフィルタリングする必要はありません。

ダッシュボードを準備するには、Countif関数が不可欠です。

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法] |これは、ダッシュボードのもう1つの重要な機能です。これは、特定の条件で値を合計するのに役立ちます。