Tips というより開発時に調べた Script 等を忘れないように書き留めた覚え書きです。
最近はここに書き留めておくことも忘れている始末で、我ながら情けなく思う今日この頃です。
ということで、不定期更新というか最近更新していませんが、JavaScript や VBScript などを紹介していきますのでご参考になれば幸いです。

関数 Left、Right、Mid を Substring にする

Left関数やMid関数をSubstring関数に置き換えられるけど、Right関数は?
文字数が足らないとエラーになるけど、いちいち文字数確認しないといけないの?
このやり方が正しいかどうかわかりませんし、もっと良い方法があるのかもしれませんが、工夫してみました。

記載日:2023年 9月11日

Left関数をSubstring関数に置き換える

左から4文字を切り取る

Dim str As String
str = "1234567890"

'Left関数
str = Strings.Left(str, 4)

'結果:1234

'Substring関数
'1文字目(0から数える)から4文字
str = str.Substring(0, 4)

'結果:1234

しかし文字数が切り取る文字数より少ない場合エラーになります

Dim str As String
str = "123"

'Left関数
str = Strings.Left(str, 4)

'結果:123

'Substring関数
str = str.Substring(0, 4)

'結果:エラー

方法1.文字数を確認してから切り取る

Dim str As String
str = "123"

'Substring関数
If str.Length >= 4 Then
    str = str.Substring(0, 4)
End If

'結果:123

方法2.PadRight関数で半角スペースを末尾に付加して切り取った後、Trim関数でスペースを削除する

Dim str As String
str = "123"

'Substring関数
str = str.PadRight(4).Substring(0, 4).Trim()

'結果:123

Mid関数をSubstring関数に置き換える

3文字目から4文字を切り取る

Dim str As String
str = "1234567890"

'Mid関数
str = Mid(str, 3, 4)

'結果:3456

'Substring関数
'0から数えるので、3文字目は2
str = str.Substring(2, 4)

'結果:3456

'3文字目から最後まで
str = str.Substring(2)

'結果:34567890

しかし文字数が切り取る文字数より少ない場合エラーになります

Dim str As String
str = "1234"

'Mid関数
str = Mid(str, 3, 4)

'結果:34

'Substring関数
'0から数えるので、3文字目は2
str = str.Substring(2, 4)

'結果:エラー

'3文字目から最後まで
str = str.Substring(2)

'結果:エラー

PadRight関数で半角スペースを末尾に付加して切り取った後、Trim関数でスペースを削除する

Dim str As String
str = "1234"

'Substring関数
'3文字目から4文字取るには6文字以上必要なので、スペースを末尾に6つ付加してから削除する
str = str.PadRight(6).Substring(2, 4).Trim()

'結果:34

'3文字目から最後まで取るには3文字以上必要なので、スペースを末尾に3つ付加してから削除する
str = str.PadRight(3).Substring(2).Trim()

'結果:34

Right関数をSubstring関数に置き換える

右から4文字を切り取る

Dim str As String
str = "1234567890"

'Mid関数
str = Right(str, 4)

'結果:7890

'Substring関数
'文字数から切り取る数を引いた場所から最古まで切り取る
str = str.Substring(str.Length - 4)

'結果:7890

しかしスタート位置がマイナスの場合エラーになります

Dim str As String
str = "123"

'Mid関数
str = Right(str, 4)

'結果:123

'Substring関数
str = str.Substring(str.Length - 4)

'結果:エラー

PadLeft関数で半角スペースを先頭に付加して切り取った後、Trim関数でスペースを削除する

Dim str As String
str = "123"

'Substring関数
'右から4文字を切り取るには4文字以上必要なので、スペースを先頭に4つ付加してから削除する
str = str.PadLeft(4).Substring(str.PadLeft(4).Length - 4).Trim()

'結果:34

ページの先頭へ