【Excel VBA】「区切り位置」機能でデータ分割をサクッと自動化する方法

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

Excelの標準機能にも「データ」タブに「区切り位置」がありますが、これをプログラム(VBA)で動かすのがTextToColumnsメソッドです。

まさに「あらかじめ指定したルールに従って、一瞬でデータを切り分ける自動カッター」のようなイメージになります。

「カンマのところで切ってね」「スペースのところで切ってね」と命令するだけで、隣のセルへ綺麗に流し込んでくれます。

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

【コピペOK】データ分割を自動化するコード

まずは、カンマで区切られたA列のデータを分割するコードを見てみましょう。

Sub SplitData()
    ' A列にあるデータをカンマで区切って分割します
    ' 万が一失敗してもいいように、まずはテスト用データでお試しください
   
    Range("A:A").TextToColumns _
        Destination:=Range("A1"), _
        DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, _
        Tab:=False, _
        Semicolon:=False, _
        Comma:=True, _
        Space:=False, _
        Other:=False

    MsgBox "分割が終わりました!"
End Sub

押さえておきたい!重要引数のカンタン解説

英語の羅列に一瞬戸惑うかもしれませんが、実務で意識すべきポイントは3つだけになります。

  • Destination: 「どこから分割を出力するか」を指定します。Range(“A1”)にすると、元のA列を上書きする形で分割されます。
  • DataType:xlDelimitedを指定することで、「特定の文字(カンマやスペースなど)で区切る」という設定になります。
  • Comma: ここをTrueにするとカンマで区切られます。もしスペースで区切りたい場合は、代わりにSpace:=Trueとするだけで対応可能です。

【私の失敗談】既存データの「上書き」には要注意!

実は私、このVBAを初めて実務で導入した際に、大きな失敗をしてしまったことがあります。

データが右側のセルへ展開されることを失念しており、元々入力されていた「大切な備考欄のデータ」をすべて上書きして消し去ってしまったのです。事前のバックアップも取っておらず、その瞬間は本当に顔が真っ青になりました。。。

みなさんが使用される際は、実行前に「分割されたデータが展開される場所に、上書きされて困るデータがないか」を必ずご確認ください。

もし少しでも不安がある場合は、Destination:=Range(“B1”)のように、右側の空いている列を出力先に指定しておくと安心です。

データの整理作業が一瞬で終わる心地よさを、ぜひ体感してみてください!

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


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

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

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

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

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

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

コメント

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