• ベストアンサー

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

tom04の回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.7

こんばんは! 補足を読みました。 最初のサイトはログインしなければならないので、見ていません。 尚、1件ずつしかコピー&ペーストできないようなので、 ↓の画像のようにSheet1にデータをコピー&ペーストした後の操作となります。 >出来ればボタンでポチっとで終わってくれるととっても嬉しいです というコトですので、↓の画像のようにSheet1にコマンドボタンを挿入した上での方法です。 それから、 J2→ 送付先電話番号半角数字とハイフンのみ。 K2→ 送付先郵便番号(〒マークなし7桁の半角数字とハイフンのみ。) L2→ 都道府県からの送付先住所 に関してはセル番地が判らないので、今回は無視しています。 (画像のA列にこのデータがコピー&ペーストできれば、可能だとは思いますが・・・) コマンドボタンをクリックするたびにSheet1のデータをSheet2の最終行の次の行に表示するようにしています。 Private Sub CommandButton1_Click() Dim k As Long, cnt As Long, startStr As Long, lastStr As Long, str As String str = Left(Range("B3"), InStr(StrConv(Range("B3"), vbNarrow), "[") - 1) If InStr(Range("B1"), "【") > 0 Then k = InStr(Range("B1"), "【") - 1 Else k = Len(Range("B1")) End If startStr = InStr(Range("B3"), "[") + 1 lastStr = InStr(Range("B3"), "]") With Worksheets("Sheet2") cnt = .Cells(Rows.Count, "A").End(xlUp).Row + 1 .Cells(cnt, "A") = Replace(Left(Range("B1"), k), vbLf, "") .Cells(cnt, "B").Resize(, 2) = Replace(str, " ", " ") .Cells(cnt, "D") = Trim(Replace(Mid(Range("B3"), startStr, lastStr - startStr), " ", " ")) .Cells(cnt, "E") = StrConv(Range("B7"), vbNarrow) .Cells(cnt, "F") = Trim(Left(Replace(Range("B6"), "〒", ""), 8)) .Cells(cnt, "G") = Trim(Replace(Replace(Range("B6"), "〒", ""), .Cells(cnt, "F"), "")) End With End Sub ※ Sheet2に転記した後、Sheet1のデータを消去することは可能ですが、 敢えてその操作はしていません。m(_ _)m

osiete_01
質問者

お礼

tom04様 自分でやってみましたら出来ました! tom04様のお陰です!!!!!!ありがとうございます!!!!! 別住所がある場合、上の住所と別住所を別々にコピーするのが面倒だなと途中で思ったので 【画像(1)】の赤く囲んでいるところから、モザイクをかけているところも一緒に 緑で囲んでいる所まで一気にコピーしてsheet1にペーストしました。 http://www.fastpic.jp/images.php?file=3812557730.jpg 緑で囲っている部分がsheet1のA27~A30だったり A28からだったり情報によって位置違うので 自分でコピーして必ずA30~A32にペーストするようにしました。 変なところがあるでしょうか、、、? Private Sub CommandButton1_Click() Dim k As Long, cnt As Long, startStr As Long, lastStr As Long, str As String str = Left(Range("B3"), InStr(StrConv(Range("B3"), vbNarrow), "[") - 1) If InStr(Range("B1"), "【") > 0 Then k = InStr(Range("B1"), "【") - 1 Else k = Len(Range("B1")) End If startStr = InStr(Range("B3"), "[") + 1 lastStr = InStr(Range("B3"), "]") With Worksheets("Sheet2") cnt = .Cells(Rows.Count, "A").End(xlUp).Row + 1 .Cells(cnt, "A") = Replace(Left(Range("B1"), k), vbLf, "") .Cells(cnt, "B").Resize(, 2) = Replace(str, " ", " ") .Cells(cnt, "D") = Trim(Replace(Mid(Range("B3"), startStr, lastStr - startStr), " ", " ")) .Cells(cnt, "E") = StrConv(Range("B7"), vbNarrow) .Cells(cnt, "F") = Trim(Left(Replace(Range("B6"), "〒", ""), 9)) .Cells(cnt, "G") = Trim(Replace(Replace(Range("B6"), "〒", ""), .Cells(cnt, "F"), "")) .Cells(cnt, "J") = Trim(Replace(Replace(Range("A32"), "TEL: ", ""), .Cells(cnt, "F"), "")) .Cells(cnt, "K") = Trim(Left(Replace(Range("A30"), "〒", ""), 9)) .Cells(cnt, "L") = StrConv(Range("A31"), vbNarrow) End With End Sub >※ Sheet2に転記した後、Sheet1のデータを消去することは可能ですが、 敢えてその操作はしていません。m(_ _)m これも自分でマクロを組んでみましたが、オブジェクトが残ったり オブジェクトも消せるようにするとマクロのボタンも消えたりとダメでした。 お願いできますでしょうか?

osiete_01
質問者

補足

tom04様 再度ご回答をいただきまして誠にありがとうございます。 最初の画面が見られず申し訳ございません。 ログインしなくても見られると思っておりました。 【画像(1)】 から【画像(5)】までが一覧で見られるサイトでした。 早速ですが、教えられた事をやってみたのですが すごいです!!!!!本当にありがとうございます! ですが、私のやり方がおかしかったのか、何度やってみましても 郵便番号の最後が住所の最初に付いて来てしまいました。 【画像(7)】 をご覧いただけたらと思います。 http://www.fastpic.jp/images.php?file=7639227841.jpg >それから、 J2→ 送付先電話番号半角数字とハイフンのみ。 K2→ 送付先郵便番号(〒マークなし7桁の半角数字とハイフンのみ。) L2→ 都道府県からの送付先住所 に関してはセル番地が判らないので、今回は無視しています。 こちらの件ですが、送付先が別 という事がイレギュラーで あるので、ある場合は【画像(8)】の様に B8~B10に入力する。 【画像(8)】 http://www.fastpic.jp/images.php?file=2649739340.jpg 送付先が同じ場合はB8~B10には何も入力しない方法で出来たらいいなと思うのですが、 sheet1B8の郵便番号はsheet2のK列に〒マーク無しで半角数字とハイフンのみ。 sheet1B9の住所はsheet2のL列に都道府県から sheet1B10の電話番号は情報はTEL: を取ってsheet2のj列に半角数字とハイフンのみで 表示出来る様にしていただけると大変助かります! sheet2のHとJ列は空白でお願いいたします。 誠に図々しいお願いとは承知の上でございます。 お時間を取らせてしまいまして申し訳ございませんが どうぞ宜しくお願いいたします。

関連する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 | |神奈川県・・・・・