仕事で必要に駆られてExcelのマクロ(VBA)を作っている。特に必要だったのが、1セルに全ての住所が収まっているものを複数列に分割する、というもの(※ちなみに英語で書かれた住所のみを対象としている)。と言うわけで、なるべく汎用性の高いものを、ということでツールを作ってみた。
当該ツールだが、各列には制限byte数があって、しかも単語の途中では区切らないという約束を設けている。文字列を分割するに当たって目安にしているのは半角スペース。ただし、「,」(コンマ)の後も文字列のくぎりとしたかったので、今回は急場しのぎで、コンマの後には半角スペースを無理矢理追加して、半角スペースのみを分割の目安とした。その他には・・・・制限文字数を短くすると、制限文字数以上の単語などが出て来て、1セルの文字数が制限文字数を超える場合はセルに色づけをするようにした。
後、分割列の最後の列でも文字列が収まりきらない場合は、制限文字数で勝手にカットせず、全ての文字列を最終列に表示するようにした。
まあ、百聞は一見にしかず、なので、WindowsのExcelユーザーの人は下記のリンクからダウンロードして、ちょっと試してみて欲しい。何か、英文の文章なり、住所なりが登録された別のExcelファイルが必要だけれども。(※残念ながらMacでは動きません。ファイルを開く動作などをWindowsのシステムに頼っているので。)