開発ブログ

ページメニュー

<< PHPによるRSSの取得 | main | 広告などの外部リンクを消して見やすくするブックマークレット >>

カレンダー

<< August 2018 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>

  • EXCELマクロ並べ替え習作
  • ちょっとデータを整理しなきゃいけない状況に追われたので、そのEXCELマクロ(VBA)を書いてみました。以下のように、文字と数値が縦方向に交互に並んでいる時、文字、数値の順に並べ替えるというもの。

    EXCELマクロ



    以下、マクロのソース。
    Sub test()
    '【本マクロ使用時の注意】
    '処理を終了する最後のセルに、「end」と入れること。
    Dim iCnt As Integer'数値型
    iCnt = 1
    Do While Cells(iCnt, "A").Value <> "end" '値がENDになるまで
    val1 = Cells(iCnt, "A").Value
    val2 = Cells(iCnt + 1, "A").Value
    Debug.Print "val1" & val1 & "/val2=" & val2'テスト表示
    If (isNumeric(val2) > 0) Then 'val2の値が数値であれば
    Cells(iCnt, "A").Value = val2
    Cells(iCnt+1, "A").Value = ""
    iCnt=iCnt+1'次の行は空白の為、省く
    End If
    iCnt = iCnt + 1
    Loop
    End Sub

    iCntを1ずつ追加することで縦方向にセルを走査し、条件に合致した時、指定の処理を行う、というだけのマクロ。とても簡単なマクロだけど、この程度のものをちょっと書ければ業務で凄く楽になるはず。

    以下、応用例です。
    'val2の値が数値であればの箇所が、特定の文字を含む場合
    If (InStr(1, val2, "特定文字") > 0) Then 

    一文字目が「N」の場合
    If Left$(val2,1)="N" Then 

    val2の値が、10文字、という条件の場合
    If (len(val2)=10) Then

    いざ、お試しアレ。

| 開発関連 | 06:00 | comments(0) | trackbacks(0) |


コメント

コメントする

この記事のトラックバックURL

http://blog.24th.jp/trackback/902773