• ベストアンサー

エクセルのマクロ 【】の中だけ抽出〒と住所を分ける

kagakusukiの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.6

 回答No.5です。  済みません、前の回答で提示させて頂いたマクロにおいて、「郵便番号が記入されておらず、尚且つ住所・番地の途中に空欄が入力されていた場合」において、F列に住所の一部が表示されないというバグが見つかりましたので、修正版を作りました。 Sub Macro() Dim i, ra, rb, c1, c2, c3 As Long Dim s1, s2, s3, s(5) As String ra = 1: rb = 1 Do While Application.WorksheetFunction. _ CountIf(Range("A" & ra & ":A" & Rows.Count), "*?【*?】") ra = ra - 1 + Application.WorksheetFunction. _ Match("*?【*?】", Range("A" & ra & ":A" & Rows.Count), 0) s1 = Range("A" & ra).Value & "" s2 = Range("A" & ra + 1).Value & "" c1 = InStr(s1, "【") c2 = InStr(Left(s2, 5), "-") c3 = InStr(Replace(s2, " ", " "), " ") s(0) = Left(s1, c1 - 1) s(1) = s(0) s(2) = Replace(Mid(s1, c1 + 1), "】", "") s3 = "" If c2 > 3 And c3 > c2 Then _ s3 = Replace(Replace(Left(s2, c3 - 1), "〒", ""), "-", "") If s3 = "" Then c3 = 0 s(3) = "" If IsNumeric(s3) Then s(3) = Format(s3, "000-0000") s(4) = Trim(Mid(s2, c3 + 1)) For i = 0 To 4 Range("B" & rb).Offset(0, i).Value = s(i) Next i ra = ra + 1 rb = rb + 1 Loop Range("B" & rb & ":F" & Rows.Count).ClearContents End Sub

osiete_01
質問者

お礼

おはようございます。 No.5様の通りにやってみたのですが このような結果になってしまいました。 Sub Macro()からEnd Subまでをコピー→sheet1右クリック→コードの表示→ペースト→ 閉じる→サイトの情報画面をコピー→sheet1のA1にペースト→Alt F8→実行 私のやり方がおかしかったのでしょうか、、、? http://www.fastpic.jp/images.php?file=4058255675.jpg せっかくお答えいただいたのに申し訳ございません。

osiete_01
質問者

補足

何度もお答えいただきありがとうございます。 朝から、まずはNO3様のご回答に対応しようと頑張っておりましたが kagakusuki様のご回答までたどり着けずの状態です。 今しばらくお待ちいただけたらと思います。 又、NO3様のご回答に補足をさせていただきましたので よければご覧いただけたらと思います。

関連するQ&A

  • エクセルで縦並びのデータを横1本にしたい

    楽天RMS等でよくあるデータの形ですが下記の様なデータを横並びにまとめたいと考えています。 150-0001 東京都渋谷区神宮前番地 山田ビル1F 山田太郎 00-0000-0000 すごい石鹸A 1個 150-0001 東京都渋谷区神宮前番地 山田ビル1F 山田太郎 00-0000-0000 ミラクルシャンプー 1個 150-0001 東京都渋谷区神宮前番地 山田ビル1F 山田太郎 00-0000-0000 ミラクルリンス   2個 何か良い手はありませんでしょうか。 こんなイメージです。  ↓ 150-0001 東京都渋谷区神宮前番地 山田ビル1F 山田太郎 00-0000-0000 すごい石鹸A 1個  ミラクルシャンプー 1個 ミラクルリンス   2個 よろしくお願い致します。

  • エクセル・1つのセルに入った漢字(カナ)の分け方

    エクセルにお強い方、教えてください>< A1のセルに、 山田 花子(ヤマダ ハナコ) とあるとします。 私は B1のセルに 山田 花子 C1のセルに (ヤマダ ハナコ) と、分けてデータ化させたいのですが、 どのようにマクロを組めばよいでしょうか? また、分け終わったC1の(ヤマダ ハナコ)に 置換を使って( )をとって、 カナ を かな に直すため、 PHONETICと書式のふりがな機能を使って直しても データにエラーは起きずに処理できるでしょうか? 最終的なデータとして A1セル→山田 花子(やまだ はなこ) B1セル→山田 花子 C1セル→やまだ はなこ としたいのです。 ご存知の方いらっしゃいましたら、教えてください。 宜しくお願い致します。

  • エクセルで検索&コピー&貼り付け

    セルに入力したデータを検索し、該当したデータ(重複データはありません)の行全体をコピーし、指定した場所に貼り付けることは可能でしょうか? 例: 「東京都」入力 ↓ 15行目にあったとすると「15 東京都○○区○○町○○○ー○ 山田太郎」コピー ↓ 指定したセルにペースト

  • EXCELのマクロでテキストを読み込む方法

    EXCELのマクロを使って、テキストファイルから、ある文字列を検索し、コピーしEXCELのシートのセルにペーストするマクロの書き方をご存知の方は、ご教示願います。 例えば、テキストファイル中の「dog」という文字列を検索して、EXCELの決まったセル(A、1)にコピペするというマクロです。 よろしくお願い申し上げます。

  • エクセルの質問です

    エクセルの質問です。   A   B   C    D    E    F 1         日付  A車  B車  C車 1         7/1   山田      太郎 2         7/2       太郎 3         7/3            花子 4 A車⇒ ■■ 5 B車⇒ ●● 6 C車⇒ ▼▼ 上記の表があります。 B4,B5,B6の各セルに A車、B車、C車の最終使用日付を自動で入れるようにしたいのですが可能でしょうか? D1:F3に入る名前はランダムになります。 ■■⇒にはD列の最終使用日 ●●⇒にはE列の最終使用日 ▼▼⇒にはF列の最終使用日 が入るようにしたいのです。 出来れば関数のみで出来ればと思ってるのですがもしマクロを使うならそれでもと思っています。 下手な質問ですがよろしくお願いします。

  • Excel マクロ 特定の列のみカット&ペースト

    Excel マクロ初心者です。IF文を使用しているのですが上手くいきません。 A列が「次郎」の時、1つ上の行のB~E列をカットし次郎の行へペースト、B列が空白の行削除・A列に山田を追加する。 例 A列|B列|C列|D列|E列 花子|a|あ|か|g 太郎|c|う|き|g 次郎| | た | | 三郎|e|お|く|g マクロ後 A列|B列|C列|D列|E列 山田花子|a|あ|か|g 山田次郎|c|う|き|g 山田三郎|e|お|く|g 色々と調べて試してみたのですが知識不足の為、上手くいかず・・・全文載せていただけると、とても助かります。

  • エクセルのマクロで教えてください

    すみません。もし教えていただける方がいらっしゃればお願いいたします。以下のようなエクセルのデータがあるとします。 この中で,同じ担当者の最新の日付の行のみを抽出したデータのシートを作りたいのです。以下のデータであれば,2,3,5,6,8,9行目を削除するマクロを作成したいのですが,どのようなマクロを作成ればよいのでしょうか。 A     B    C 1  担当者   日付   金額 2 たなか   8/1   10,000 3 たなか   8/10   15,000 4 たなか   8/21   20,000 5 さとう    8/2    8,000 6 さとう    8/12   12,000 7 さとう    8/22   15,000 8 やまだ   8/1     9,000   9 やまだ   8/7    12,000 10やまだ   8/15   18,000

  • Excelマクロ 統合セルの連続コピペ

    Excelマクロの初心者です 現在以下のことをマクロで行おうと思ってます。 ファイルAのシートAのC11に入ってる文章を同じファイル内にあるシート2のA46:F51の統合してあるセルにコピペします。 そして次にファイルAのシートD11に入ってる文章をシート3のA46:F51の統合してあるセルにコピペします。 このような作業をファイルAのAC11まで続けたいです。 どなたか教えて頂けないでしょうか? よろしくお願いします。

  • Excelで住所録を作る

    Excelで住所録を作っています。一つのセルに名前を入力したものを、姓と名で分けてとなりの列に表示させるには、どうしたら良いのでしょうか?手入力で分けるには、データが多すぎるので、関数が使えたらいいと思います。名前のデータから苗字だけを取り出す関数はありますか? 表 氏名     姓   名 山田太郎   山田  太郎 こんな感じの表を作りたいです。 Excel2002を使っています。 よろしくお願い致します。

  • Excelのマクロ『困ってます!』

    Excelで、以下のような機能を持ったマクロをつくりたいのですが、情けないのですが全くできません。 わかる方、どうかよろしくお願いいたします。 Sheet1のA1~D1の値(例では、東京、練馬区、○○、△△)を、 全て「含む」Sheet2のセルに目印をつけ(例は隣のセルに「○」と入力)し、 それが終わったらSheet1のA2~D2の値(例では、東京、練馬区、○○、□□)で・・・ の繰り返しです。 あくまでSheet1の値を全て「含む」ものが対象なので、Sheet2の5行目のように、 余計な値(例では★)が混じっているものも対象としたいです。 例: [Sheet1] 1 |東京都|練馬区|○○ |△△ | 2 |東京都|練馬区|○○ |□□ | 3 |東京都|目黒区|●● |■■ | 4 |埼玉県|川口市|◇◇ |×× | [Sheet2] 1 | |東京都港区・・・・ 2 | |東京都練馬区・・・・・ 3 | |東京都練馬区○○◎◎ 4 |○|東京都練馬区○○△△ 5 |○|東京都練馬区★○○★□□ 6 | |東京都練馬区★★□□ 7 |○|東京都目黒区●●■■ 8 |○|埼玉県川口市◇◇×× 9 | |神奈川県・・・・・