全角が含まれる文字列を半角に変換する

<分類:値変換>
<使用例:全角が含まれる文字列(ABCDEF)を半角(ABCDEF)に変換する>
<プログラム例>

Sub 使用例
   Dim s As String
   Dim s2 As String
   
   s = "ABCDEF"
   s2 = StrConv(s, vbNarrow)

   MsgBox (s & "の文字列を" & s2 & "に変換しました")

End Sub

ステータスバーに処理中...の.を流れるように表示する

<分類:ステータスバー制御>
<使用例:ステータスバーに処理中...を表示する。ステータスバー表示時間間隔はパラメータで調整可能現在10000000で設定>
<プログラム例>

Sub 使用例()
   Dim i As Long

   Application.StatusBar = False

   For i = 1 To 50
      Call ステータスバー表示(10000000)
   Next i

End Sub

Sub ステータスバー表示(p1)
  'p1:待ち時間制御
   
   Dim i As Long
    
  '待ち時間制御
   For i = 1 To p1
   Next i
    
   If Left(Application.StatusBar, 3) = "処理中" Then
      Application.StatusBar = Application.StatusBar & "."
   Else
      Application.StatusBar = "処理中" & "."
   End If
End Sub

整数部・小数部の分離応用:整数は下2桁、小数は上3桁で表示する

<分類:値抜き取り>
<使用例:123.4567という小数点を含む値を整数部下2桁(23)と小数部上3桁(456)に分ける>
<プログラム例>

Sub 使用例()
   Dim s As String
   Dim rtn1 As String
   Dim rtn2 As String

  '123.4567
   s = "123.4567"

   Call 部品_小数分離(s, rtn1, rtn2)
   rtn1 = Right(rtn1, 2)
   rtn2 = Left(rtn2, 3)

   MsgBox (s & "の整数部(下2桁)は" & rtn1 & " 小数部(上3桁)は" & rtn2 & "です")

End Sub


Sub 部品_小数分離(p1, r1, r2)

'p1:値1
'r1:整数部
'r2:小数部

   Dim ne1 As String
   Dim ne2 As String

   Dim nelens As Long

   nelens = Len(p1)
   If InStr(p1, ".") > 0 Then
      '整数部の取り出し
       ne1 = Mid(p1, 1, InStr(p1, ".") - 1)
      '小数部の取り出し
       ne2 = Mid(p1, InStr(p1, ".") + 1, nelens)
   Else
       ne1 = p1
       ne2 = 0
   End If
   
   r1 = ne1
   r2 = ne2
   
End Sub