文字列操作

文字列の数字変換と表示形式変換

 指定した文字列の中で数字を数値として変換するのに「Val関数」を使います。

また文字列を指定した表示形式に変換するには「Firmat関数」を使います。

ここではそれらについて解説します。

文字列の数字変換

 指定したデータ(文字列)の中にある数字を数値に変換します。

しかし文字列の途中に文字列の途中に数字以外の文字が見つかった場合、数値への変換がそこで終わったり、全部が数値としてみなされないなど、状況によっていろいろあります。

 数字 = Val(文字列)

Sub 数値変換()
 Dim I As Integer

 For I = 3 To 11
  Cells(I, 3) = Val(Cells(I, 2))
 Next I
End Sub

B列にある文字列を数値に変換したものです。

① そのまま数値に変換されています。

② ピリオド「.」は数値とみなされ、そのまま数値として変換されます。

③ カンマ「,」の手前まで数値とみなされます。

④ スペースは無視され連続した数値として変換されます。

⑤ 全角数字は数値としてはみなされず「0」となります。

⑥ スラッシュ「/」の手前までを数値とみなされ、以後は無視されます。

⑦ 円マーク「\」が最初にあるので、数値としてみなされません。

⑧ 最初に全角文字があるので数値としてみなされません。

⑨ 8進級や16進級のプレフィックスは数値としてみなされます。

文字列の指定表示形式への変換

 指定したデータを指定した表示形式に変換するには

  Format(データ、”表示形式”)

を使います。

数値、日付、文字列、時刻などいろいろな表示形式への変換ができます。

Sub 形式変換() Dim DT as Date

 Range(“D3”) = Format(25, “‘000”) ‘①
 Range(“D4”) = Format(2518, “‘000”) ‘②

 Range(“D5”) = Format(25, “‘###”) ‘③
 Range(“D6”) = Format(2518, “‘####”) ‘④

 Range(“D7”) = Format(5.28, “‘0.0”) ‘⑤

 Range(“D8”) = Format(5678, “‘#,##0”) ‘⑥

 DT = “2022/10/5”
 Range(“D9”) = Format(DT, “‘yyyy/mm/dd”) ‘⑦
 Range(“D10”) = Format(DT, “‘gggee年m月d日”) ‘⑧

 Range(“D11”) = Format(Now, “‘hh:nn:ss”) ‘⑨

 Range(“D12”) = Format(“Japan”, “<“) ‘⑩
 Range(“D13”) = Format(“Japan”, “>”) ‘⑪
End Sub

指定文字列の位置を調べる  ある文字列の中で、指定した文字列が有るか無いか、あるとしたら何番目に有るのか、こうしたことが必要になる場合があります。 そのよ...