3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

固定長の文字列を作る

2010年6月22日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関西在住の達人養成塾受講生の方とのメールでちょっと出たやりとり。

セミナー本編では、DoLoopの使用例として、以下のようなサンプルを紹介している。

Sub CreateStringDigit()
    Dim st As String
    
    st = Range(“A2”).Value
    
    Do While Len(st) < 10
        st = “0” & st
    Loop
    
    Range(“B2”).Value = st
End Sub

10桁の文字列を作る場合だ。

上記のようなマクロで、「1234」からは、「0000001234」、
「123」からは、「0000000123」のような文字列を作ることができる。

これに関連して、その受講生の方からは、以下のようなメールをいただいた。

講義で数文字列に関して、左0詰めの話があったような気がしたのですが、それについて、職場で下記のように作ったことがあるのを思い出しました。

Dim strW As String
Dim lngW As Long
’10桁に揃える場合
strW = Right(“0000000000” & Cstr(lngW), 6)

興味深い。

あと、DoLoopの参考例でもなんでもないのだが、固定長の文字列型変数を宣言し、
以下のように処理する方法もある(マニアックだが)。

Sub Kotei()
    Dim tgt As String * 10
    Dim s As String

    s = “4”
    tgt = Left(Replace(tgt, vbNullChar, “0”), Len(tgt) – Len(s)) & s
    Debug.Print tgt
End Sub

僕としては、汎用性のある知識を使い回せるほうが基本的には良いと思う。

ならば、やっばり最初紹介したような方法が最適か。

キーワード

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド