質問: エクセルデータのこういうデータは直せますか? ある友人にデータの打ち込みをたのんだのですが。 もらったデータがa1縦列のみにしかなく。 全部a1列に繋がっているのですが。 a1 氏名:あいうえお 住所:あいうえお 電話番号:あいうえお 氏名:かきくけこ 住所;かきくけこ 電話番号かきくけこ ・ ・ ・ となっているのですが。 なんせデータの量がおおくて。 このデータをなにかして。 氏名 | 住所 | 電話番号| あいうえお|あいうえお|あいうえお| かきくけこ|かきくけこ|かきくけこ| みたいに整理できませんかね? 誰かたすけてください。 おねがいします。
回答: マクロで一気にやる方法です。sheet1のa1にデータが入っているとして、sheet2に分解した表を作ります。以下の手順に沿って操作してみてください。 まずalt+f11を押すとvbaの画面が開くので、左側のツリーからブック名を選択し、右クリックから「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。 sub sample() dim shimei as string, addres as string, tel as string dim data as variant dim i as integer, j as integer, tmpstr as string data = split(worksheets("sheet1").range("a1").value, vblf) with worksheets("sheet2") .cells.clearcontents .range("a1:c1").value = array("氏名", "住所", "電話番号") for i = 0 to ubound(data) if data(i) like "氏名*" then tmpstr = replace(data(i), "氏名", "") j = 1 elseif data(i) like "住所*" then tmpstr = replace(data(i), "住所", "") j = 2 elseif data(i) like "電話番号*" then tmpstr = replace(data(i), "電話番号", "") j = 3 else j = 0 end if if j > 0 then tmpstr = trim(replace(replace(tmpstr, ":", ""), ":", "")) .cells(rows.count, j).numberformatlocal = "@" .cells(rows.count, j).end(xlup).offset(1).value = tmpstr end if next end with end sub その画面でf5キーを押すか、alt+f11でexcelの画面に戻ってalt+f8からマクロを実行してみてください。sheet2に表ができます。 エラーが出たり、希望の結果と違う、その他おかしいことがあれば補足をお願いします。