数値↔︎文字列の変換とその確認方法

VBA

文字列か数値かの確認方法

レベル1 セル内の値が右寄りか左寄りか

セル内で値が左右どちらに寄っているかで判断する方法があります。

  • 左寄り:文字列
  • 右寄り:数値

また「0120」のようにゼロから始まる数字は、文字列ならゼロから表示されますが、数値なら「120」と語頭のゼロが省略されます。

ただし、セルの設定で左寄り・右寄りを設定していると、上記規則は成立しないため参考程度に留めておくと良いでしょう。

レベル2 関数を利用

確実に数値か文字列の確認をする方法は、関数を利用することです。

  • ISTEXT関数:文字列かどうかの判定
  • ISNUMBER関数:数値かどうかの判定

利用する関数は上記2つです。では、それぞれのついての解説をしていきます。

ISTEXT関数について

ISTEXT(文字列)=TRUE

指定した値が文字列なら「TRUE」、文字列以外なら「FALSE」が反映されます。

ISNUMBER関数について

ISNUMBER(数値)=TRUE

指定した値が数値なら「TRUE」、数値以外なら「FALSE」が反映されます。

以上のような方法で、セルの値が文字列か数値かを判定できます。

数値から文字列へ変換

レベル1 セルの書式設定

セルの書式設定で「文字列」を指定する方法があります。

セルの書式設定の修正方法は3つあります。全て変更したいセルを選択した上で行います。

  • タブ「ホーム」数値の欄
  • 右クリックで「セルの書式設定」
  • ショートカットキー「Ctrl + 1」で書式設定を開く

書式設定を開く方法は3つありますが、行うことは1つです。

分類「文字列」をクリックするだけです。

なお、セルの選択範囲を広げれば、複数のセルをまとめて変更できます。

しかし、書式設定だけで変換しきれない場合もあります。その時には、レベル2〜4の方法で強制的に変換することをオススメします。

レベル2 セルの先頭に「’」をつける

「’(アポストロフィ)」を数値の頭につけると、文字列へと変換できます。

例えば、「100(数値)」に「’」をつけると、「’100(文字列)」に変換されます。

そして、「’」が表示されることはありません。

また複数のセルに対してまとめて、この方法で変換をしたい場合にはオートフィルと「&」を利用しましょう。

レベル3 関数TEXTを利用

TEXT関数を利用すると、数値を文字列へと変換できます。

=TEXT(数値 , ”@” )

もし数値でなく、文字列を変換しようとしてしまっても、エラーにはなりません。そのまま文字列として表示されます。

こちらもオートフィルを利用すれば、複数のデータをまとめて変換可能です。

レベル4 VBAでの変換

VBAを利用してマクロ内で文字列への変換を行いたい際には、下記の処理をしましょう。

CStr(数値)

CStrの引数にセル番号などを入力すれば、その値を文字列へ変換してくれます。

図解は作成中…

文字列から数値へ変換

レベル1 セルの書式設定

文字列への変換と同様に、セルの書式設定で「数値」へ変換が可能です。

書式設定を修正しても、関数で確認すると、変換されていないことがあります。なので、こちらも同様に関数等を利用することをオススメします。

レベル2 関数VALUEを利用

VALUE関数を利用すると、文字列を数値へ変換できます。

=VALUE(文字列)

こちらもオートフィルを利用すれば、まとめて複数のデータを変換できます。

レベル3 VBAでの変換

VBAでの数値への変換も関数とほぼ同様の方法でできます。

VAL(文字列)

シンプルなコードで変換が可能なので、条件式などに組み込んでも理解しやすいです。さらに、無理やり数値への変換が必要な際にも利用しやすいため、なぜか上手くマクロが機能しないときに試しやすいです。

コメント

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