So-net無料ブログ作成
検索選択
Excel2000 VBA 文字列操作 ブログトップ

Excel2000 VBA 文字列操作 /(スラッシュ)で区切られた文字列を分解 [Excel2000 VBA 文字列操作]

Excel2000 VBA  文字列操作 /(スラッシュ)で区切られた文字列を分解

goo天気から取得した最高気温、最低気温の文字列"34 / 28 "を分解する。

Sub 最高最低気温分解()
'goo天気の最低気温、最高気温の文字列を分解する
'
Dim temperature As String
Dim strA, strB  As Variant
Dim i, temperatureHL(1) As Integer
'文字設定
    temperature = "34 / 28 "    '34最高気温 28最低気温
'spaceを削除
    temperature = Replace(temperature, " ", "")   'spaceをnullに置換
'区切り文字 / で展開
    strA = Split(temperature, "/")

    For Each strB In strA
        temperatureHL(i) = CInt(strB)   'temperatureHL(0)に34 temperatureHL(1)に28
        i = i + 1                         'Cint()で文字を数値(integer)に変換
    Next
'MsgBoxに表示
    MsgBox temperatureHL(0) & vbCrLf + vbCrLf & temperatureHL(1)
End Sub


タグ:Excel2000 VBA

Excel2000 VBA 文字列操作 ファイル名を名前と拡張子に分解 [Excel2000 VBA 文字列操作]

Excel2000 VBA  ファイル名を名前と拡張子に分解

ファイル名に使えない文字 \ / : * ? " < > |(shiftキー+\)

ファイル名は 名前.拡張子の形でドット(ピリオド)はファイル名に使えるので、単純にピリオドで区切れない。
VBEにはInStrRev関数があり調べる文字を右から検索して、最初に見つかった文字が左から何番目にあるかを数値で返す。
InStrRev関数を使えばピリオドの位置を調べピリオド以降が拡張子になるわけで、ファイル名を名前と拡張子に分解するマクロ作ってみた。

excel_filename.jpg

Sub ファイル名を名前と拡張子に分解()
Dim fileName, fileName2, 拡張子 As String

fileName = "Test.123ABC.xls"

'InStrRev 右側から検索して見つかった左からの位置
fileName2 = Left(fileName, InStrRev(fileName, ".") - 1)
'Len(ファイル名)はファイル名の文字数
拡張子 = Right(fileName, Len(fileName) - InStrRev(fileName, "."))

MsgBox fileName2 & "   " & 拡張子

End Sub


 


タグ:Excel2000 VBA

Excel2000 VBA 文字列操作 メモ1  [Excel2000 VBA 文字列操作]

文字列の最後の一文字を削除する

文字数=Len(文字列)
new文字列=left(文字列,文字数-1)   2文字なら2 

 

カンマ区切り文字を展開する

利用方法 山田一郎を山田と一郎に分けるには、山田(手動でカンマを入れる)一郎 でマクロを実行すると、山田と一郎に展開できる

Sub カンマ区切り文字列を展開()
'
'選択したカンマ区切り文字を右側に展開する
'
    Dim 文字列 As Variant
    Dim 文字  As Variant
    Dim i       As Integer
    Dim cell_row As Integer
    Dim cell_column As Integer
   
'アクティブセルの行列を調べる
    cell_row = ActiveCell.Row
    cell_column = ActiveCell.Column

'Split関数 for each で展開
    文字列 = Split(ActiveCell, ",")
   
    For Each 文字 In 文字列
    Cells(cell_row, cell_column + i) = 文字
        i = i + 1
    Next
   
End Sub

Split(文字列,区切り文字)
For Each 変数(要素) In グループ(配列)  ・・・・   Next


 

文字列の特定の文字を置き換える(置換)

  • post_no = Replace(post_no, "-", "") 「-」を「Null ""」にする
  • 例 123-4567 → 1234567

文字列から1文字づつ取り出す

  • mojiretu(count)=mid(mojiretu(0),1,1)    
  • 例 
  • mijiretu(0)=abcd
  • for count=1 to 4
  • mojiretu(count)=mid(mojiretu(0),count,1)
  • next count
  • 結果 mijiretu(0)=abcd mojiretu(1)=a mojiretu(2)=b mojiretu(3)=c mojiretu(4)=d  

文字数を調べる

  • 文字数=Len(文字列) 
  • Len("あいうえお")は 5(文字)

文字列検索 InStr(検索文字列,検索文字)

  • InStr("ABCDEFDD","D")  は4 最初に見つかった位置

 

文字列の左から2文字取り出す

  • 左2文字=left(文字列,2)
  • Left("あいうえお",2) は 「あい」 

文字列の右から2文字取り出す

  • 右2文字=right(文字列,2)
  • Right("あいうえお",2) は 「えお」 

文字列を左から検索して最初に見つかった位置を調べる

  • tel_no = InStr("012-34-5678","-")  -の位置を調べる
  • tel_no は 4
  • InStr(検索開始位置、検索文字列、検索文字(列))

Excel2000 VBA 文字列操作 ブログトップ