エクセルマクロ(EXCEL VBA)

エクセルマクロ(EXCEL VBA) その6 繰り返し作業の練習(For Next)

For Nextの練習

前回、For Nextを使って名前に「様」を付けるマクロを作りました。
For Nextでの繰り返し作業は、とても重要なのでもう少し練習してみましょう。

 
肩書と名前を結合するマクロ

演劇のスタッフには、作、演出、音楽、美術・・・などの肩書が付き物です。

そこで、こういうリストがあったとします。
このリストをCSVでダウンロード

肩書を付ける

このC2のところに、
【作】織田信長

と入るようにしてみましょう。
前回の記事を参考にマクロを作ってみてください。

 
まずは、A2とB2を結合して、C2に入るようにしてみましょう。

C2は、CellsでいうとCells(2, 3)でしたよね。
A2はCells(2, 1)で、B2はCells(2, 2)なので、

Cells(2, 3) = Cells(2, 1) + Cells(2, 2)

と書けば良さそうです。

文字列の結合

これを実行すると、

作と織田信長が結合された

うまくいきました。
C2に、作織田信長 と入れることができました!

でも、本当に入れたいのは【作】織田信長 でしたので、このマクロにさらに追記して行きましょう。
様を追加したときは、”様” というふうにダブルクォーテーションでくくって、「+」でつなげれば良かったわけなので、

Cells(2, 3) = "【" + Cells(2, 1) + "】" + Cells(2, 2)

こうしてみましょう。

肩書に【】を加える

これを実行すると、

【作】織田信長になった

うまく行きました!
あとは、9行目まで繰り返せばできそうですね。
For Nextを使って、繰り返し作業の指示を出してみてください。

 
僕はこう書きました。

 
繰り返し作業を仕込む

 
無事に、肩書に【】を付けて、氏名と結合されたものを、隣の列に書き入れることができました。

肩書を付けた結果

 
これで、たとえスタッフが100人いても同じ方法で肩書をくっつけることができます。

次回は、For Nextと同じくらいとても重要な If による条件分岐について書きます。

 
今回の最終的なコード

Sub add_katagaki()
For i = 2 To 9
    Cells(i, 3) = "【" + Cells(i, 1) + "】" + Cells(i, 2)
Next
End Sub

宿題-6
同じ肩書のスタッフが2人以上いる場合は、どうしたら良いでしょう。

例えば複数人いたら?

こうなるようにしてみてください。

複数人を肩書と結合

いろいろな解決方法が考えられると思うので、是非取り組んでみてください。

 


 
エクセルマクロ(EXCEL VBA) その7 Ifで条件分岐(If)

(文:森脇孝/エントレ)

関連記事一覧