2011年5月26日木曜日

Excel VBAで文字列の結合

Excel VBAを使って、文字列の結合を行う。

例えば何かのテストをしたいとき。

SQL文やその他もろもろの長い命令文をいろんな変数で試したいとき、
コピペして、""の間を消去しては文字を埋め、また次行にいって""の間を消去しては文字を埋め。。。では疲れる。
なので、こんなものがあれば、ちょっとでも使えるかなと思って、書いてみた。あとはもちろん、VBAの練習も兼ねて。

<サンプル画面>
これが元々の表。今回は、自分で入れ替えたい単語は2語にして、それらを決まった文章に当てはめたものを右側に書き出していく。



結果はこちら。こんなかんじなのをつくりました。




今回はそこまで複雑ではないので、一気に載せようかしら。

Sub 結合()

    '文字列の定義
    Dim s As String
    Dim t As String
    Dim r As String
    
    s = "私の名前は"
    t = "です。"
    r = "歳です。"
    
    'C2セルを選択する
    Cells(2, 3).Select
    
    '年齢が空欄になっている行まで処理を続ける
    Do Until ((ActiveCell.Offset(0, -1).Value = ""))
        With ActiveCell
    
      '名前と年齢と日本語を結合する(演算子は「+」or「&」)
      '「+」は数値加算の意味が含まれ紛らわしいため「&」で統一
        .Value = s & .Offset(0, -2).Value & t & .Offset(0, -1) & r
        .Offset(1, 0).Select
        End With
    Loop
End Sub



そして完成と。

ちなみに、今回試しに「デバッグ機能」も使ってみた。



Eclipseと同じ感じで「ステップイン」「ステップオーバー」でデバッグができました。

0 件のコメント:

コメントを投稿