リスト作成に時間をかけていませんか?「Join関数」なら、3秒で完了します

【業務効率化】VBA
スポンサーリンク

こんにちは!ぐーです。

いつもブログをご覧いただき、ありがとうございます!

「ExcelのメールアドレスをOutlookの宛先に貼り付けたいけれど、一つずつセミコロン(;)で繋ぐのは非常に手間がかかる……」

そんなふうに感じたことはないでしょうか? 

数件ならまだしも、100件単位になるとかなりの重労働ですよね。手作業はミスの原因になりますし、貴重な時間も奪われます。思わず投げ出したくなる瞬間もあるはずです。

そこで今回は、バラバラのデータを一瞬で連結させる、VBAの「Join関数」をご紹介します。この関数をマスターすれば、これまで1時間かかっていた作業が、わずか3秒で終わります。

【業務効率化】VBAの記事を見る

そもそも「Join関数」とは?

簡潔に言えば、「配列(箱)に格納された複数の文字を、任意の区切り文字で繋ぎ、一つの文字列(ひも)にまとめる」機能です。

  • 箱の中身:[“田中”, “佐藤”, “鈴木”]
  • 接着剤:”、”(読点)
  • Joinの結果:”田中、佐藤、鈴木”

シンプルな仕組みですが、効率化への貢献度は抜群です。

【実践】コピー&ペーストで使えるVBAコード

では、最もニーズの多い「メールアドレスを『;』で連結する」作業を自動化してみましょう。

ExcelのA列に、メールアドレスが入力されている場面を想定してみましょう。以下のコードをコピーし、VBAの標準モジュールに貼り付けるだけで、すぐにご利用いただけます。

Sub MakeMailList()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim mailArray As Variant
    Dim resultString As String

    ' 現在のシートをセット
    Set ws = ActiveSheet

    ' A列のデータがある最終行を取得(動的な範囲指定に必須)
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' A列のデータを一括で配列(箱)に取り込む
    ' Rangeを1次元配列にするためTransposeを使用
    mailArray = Application.Transpose(ws.Range("A1:A" & lastRow).Value)

    ' Join関数で連結
    ' 区切り文字(セパレーター)はセミコロン ";" を指定
    resultString = Join(mailArray, ";")

    ' 結果をメッセージボックスで表示
    MsgBox resultString

End Sub

コードの仕組みを解説

  • Application.Transpose: Excel上の縦方向のデータを、VBAで処理しやすい横方向の「配列」へ変換しています。
  • Join(mailArray, “;”): 処理の要です。配列内の全データをセミコロンで一気に連結するよう指示しています。

たとえデータが数百件あっても、処理は一瞬(0.1秒未満)で完了します。手作業とは比較にならないスピードです!

応用編:さらに活用シーンを広げるヒント

このJoin関数は、区切り文字を変えるだけで様々なビジネスシーンで応用可能です。

  • CSVデータを作成したい時: 区切り文字を “,”(カンマ)にする。
  • SQLの条件文(IN句など)を作りたい時: 区切り文字を “,” にし、各要素をクォーテーションで囲む加工を組み合わせる。
  • メッセージを改行して表示したい時: 区切り文字を vbCrLf(改行コード)にする。

ぜひ試してみてください!

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました