【マクロVBA】Excelの表示形式を文字列型、標準型に変更する

マクロVBA

エンジニアをしていると、0始まりのIDを目にすることがあります。
Excelに入れると、Excelが勝手に数値と判断して0を自動で消してしまうこともあり、厄介なものです。

ウォルト
ウォルト

型を変えたり戻すのは簡単だけど、回数が多いし作業を少しでも簡略化したい。。。!

そこで、文字列型⇔標準型を変換するソースコードを書きました。
数字の手前に0が入っている文字列を手動で標準型に戻すと、普通はワーニングが出て0が消えませんが、本記事で紹介するソースコードでは標準型にしたときに0を消すよう工夫しています。

ソースコード

以下、ソースコードになります。コピペして使ってみてください。

'-------------------------------------------
'概要:選択セルを文字型へ変更
'-------------------------------------------
Sub ChangeToChar()
    Selection.NumberFormatLocal = "@"
End Sub


'-------------------------------------------
'概要:選択セルを標準型へ変更
'-------------------------------------------
Sub ChangeToStandard()
    Selection.NumberFormatLocal = "G/標準"
    Selection.Formula = Selection.Value
End Sub

実際の動き

A1セルでChangeToCharを実行します。すると、A1セルの型が「文字列」に変更されます。

ここに、例として「0012345」を入力します。すると0が消えずに残ります。

次に、A1セルでChangeToStandardを実行します。すると、A1セルの型が「標準」に変更されます。

この時、先頭の0が消え、「12345」だけが残ります。

コメント

タイトルとURLをコピーしました