- ベストアンサー
エクセルのマクロ 【】の中だけ抽出〒と住所を分ける
kagakusukiの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
「山田 太郎【やまだ たろう】」の次の名前がA3セルに入力されているのか、それとも1行空けてA4セルに入力されているのか、はたまた、2行以上も空けた行に入力されているのか、という条件が不明ですので、「□□□□【○○○○○】」という形式の文字列が入力されているセルが、何行目にあるのかという事を基準として処理を行う様にしたマクロです。 ですから、前のデータの住所と後のデータの名前との間を空ける間隔が途中で変わってしまっていたとしても正常に動作致します。 但し、「山田 太郎【やまだ たろう】」と「〒123-4567 東京都~」の間が空いている様な場合には対応しておりません。 それから、もしも郵便記号「〒」が入力されていなかった場合でも、番号の途中に半角の「-」が挟まっていて、尚且つ、郵便番号と住所の間には、空白スペース(全角、半角のどちらでも可)が入っているのであれば、郵便番号を正しく抽出する事が出来ます。 又、郵便番号を入力し忘れている箇所があった場合には、E列を空欄とした上で、F列に住所が表示されます。 又、郵便番号の所に入力されている文字列が、例えば「〒01A-9999」等の様に、数字に変換出来ない様な番号が入力されていた場合にも、E列を空欄とした上で、F列に住所が表示されます。 Sub Macro1() Dim i, ra, rb, c1, c2, c3 As Long Dim s1, s2, s3, s4, 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(s2 & "-", "-") c3 = InStr(Replace(s2, " ", " "), " ") s(0) = Left(s1, c1 - 1) s(1) = s(0) s(2) = Replace(Mid(s1, c1 + 1), "】", "") s3 = Replace(Left(s2, c2 - 1), "〒", "") s4 = "" If c3 > 0 Then s4 = Mid(Left(s2, c3 - 1), c2 + 1) s(3) = "" If IsNumeric(s3) And IsNumeric(s4) Then s(3) = s3 & "-" & s4 s(4) = 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
関連する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個 よろしくお願い致します。
- ベストアンサー
- SE・インフラ・Webエンジニア
- エクセル・1つのセルに入った漢字(カナ)の分け方
エクセルにお強い方、教えてください>< A1のセルに、 山田 花子(ヤマダ ハナコ) とあるとします。 私は B1のセルに 山田 花子 C1のセルに (ヤマダ ハナコ) と、分けてデータ化させたいのですが、 どのようにマクロを組めばよいでしょうか? また、分け終わったC1の(ヤマダ ハナコ)に 置換を使って( )をとって、 カナ を かな に直すため、 PHONETICと書式のふりがな機能を使って直しても データにエラーは起きずに処理できるでしょうか? 最終的なデータとして A1セル→山田 花子(やまだ はなこ) B1セル→山田 花子 C1セル→やまだ はなこ としたいのです。 ご存知の方いらっしゃいましたら、教えてください。 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルで検索&コピー&貼り付け
セルに入力したデータを検索し、該当したデータ(重複データはありません)の行全体をコピーし、指定した場所に貼り付けることは可能でしょうか? 例: 「東京都」入力 ↓ 15行目にあったとすると「15 東京都○○区○○町○○○ー○ 山田太郎」コピー ↓ 指定したセルにペースト
- ベストアンサー
- オフィス系ソフト
- EXCELのマクロでテキストを読み込む方法
EXCELのマクロを使って、テキストファイルから、ある文字列を検索し、コピーしEXCELのシートのセルにペーストするマクロの書き方をご存知の方は、ご教示願います。 例えば、テキストファイル中の「dog」という文字列を検索して、EXCELの決まったセル(A、1)にコピペするというマクロです。 よろしくお願い申し上げます。
- ベストアンサー
- Visual Basic
- エクセルの質問です
エクセルの質問です。 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 色々と調べて試してみたのですが知識不足の為、上手くいかず・・・全文載せていただけると、とても助かります。
- 締切済み
- Visual Basic
- エクセルのマクロで教えてください
すみません。もし教えていただける方がいらっしゃればお願いいたします。以下のようなエクセルのデータがあるとします。 この中で,同じ担当者の最新の日付の行のみを抽出したデータのシートを作りたいのです。以下のデータであれば,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マクロ 統合セルの連続コピペ
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 | |神奈川県・・・・・
- 締切済み
- Visual Basic