• ベストアンサー

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

tom04の回答

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

ぎゃっはっはぁ~~! 結局前回で解決!とはいかなかった訳ですね? 確かに、一旦望み通りのコトが可能になると次への欲望が出てしまいますね。 さて、本題です。 結局A45セルにB4セルと同じ形式で名前が入っていて、H列に [ より前の名前を! I列に [ と ] に囲まれた部分を表示したい!という解釈で・・・ Private Sub CommandButton1_Click() Dim k As Long, cnt As Long, startStr As Long, lastStr As Long, str As String Dim myShp As Shape On Error Resume Next '←念のため str = Left(Range("B4"), InStr(StrConv(Range("B4"), vbNarrow), "[") - 1) If InStr(Range("B2"), "【") > 0 Then k = InStr(Range("B2"), "【") - 1 Else k = Len(Range("B2")) End If startStr = InStr(Range("B4"), "[") + 1 lastStr = InStr(Range("B4"), "]") With Worksheets("Sheet2") cnt = .Cells(Rows.Count, "A").End(xlUp).Row + 1 .Cells(cnt, "A") = Trim(Replace(Left(Range("B2"), k), vbLf, "")) .Cells(cnt, "B").Resize(, 2) = Trim(Replace(str, " ", " ")) .Cells(cnt, "D") = Trim(Replace(Mid(Range("B4"), startStr, lastStr - startStr), " ", " ")) .Cells(cnt, "E") = Trim(StrConv(Range("B8"), vbNarrow)) .Cells(cnt, "F") = StrConv(Left(Trim(Replace(Range("B7"), "〒", "")), 8), vbNarrow) .Cells(cnt, "G") = Trim(Replace(Replace(Range("B7"), "〒", ""), .Cells(cnt, "F"), "")) .Cells(cnt, "J") = Trim(Replace(UCase(StrConv(Range("A48"), vbNarrow)), "TEL:", "")) .Cells(cnt, "K") = Trim(Replace(Range("A46"), "〒", "")) .Cells(cnt, "L") = StrConv(Range("A47"), vbNarrow) '※ ココから追加 str = Left(Range("A45"), InStr(StrConv(Range("A45"), vbNarrow), "[") - 1) startStr = InStr(Range("A45"), "[") + 1 lastStr = InStr(Range("A45"), "]") .Cells(cnt, "H") = Trim(Replace(str, " ", " ")) .Cells(cnt, "I") = Trim(Replace(Mid(Range("A45"), startStr, lastStr - startStr), " ", " ")) '※ ココまで '↓オブジェクトの削除(コマンドボタン以外) For Each myShp In Worksheets("Sheet1").Shapes If myShp.Type <> msoOLEControlObject Then If myShp.OLEFormat.progID <> "Format.CommandButton1" Then myShp.Delete End If End If Next myShp End With '↑まで Range("A:K").ClearContents End Sub こんなんではどうでしょうか? ※ こちらでは具体的な表のレイアウトが判らないので、補足にあるコードを参考に手を加えてみました。 K列表示がお望み通りになっていないかもしれません。m(_ _)m

osiete_01
質問者

お礼

私の説明不足な文章で理解していただき とても使いやすいマクロを作っていただきまして ありがとうございます!! 1時間かかっていた作業が 10数分で出来る様になりました! 今までの作業は何だったんだろう? といった感じです! 他のスタッフも喜んでおります! 感謝しております! 本当にありがとうございました!

osiete_01
質問者

補足

tom04様 てへ。申し訳ございません。 良く深くなってしまいました。 そして、出来ました!!! バッチリです! ついでに本日、1行目のボタンも下の方がいい!となり、 50行目に移動しちゃんと出来ました! ありがとうございます!!! ありがとうございます!!! ありがとうございます!!!

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