• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL マクロ 文字列を種類分けして並べ替え)

EXCELマクロで注文番号の種類分けと並べ替え

このQ&Aのポイント
  • EXCELマクロで注文番号をアルファベット3文字から始まる種類とそれ以外に分け、日付の昇順に並べ替える方法を教えてください。
  • EXCELマクロ初心者です。注文番号をアルファベット3文字から始まる種類とそれ以外に分け、日付の昇順に並べ替えたいです。VLOOKUPを使って、B列には注文番号に対応する日付が入っています。お手数ですが、教えていただけませんか?
  • EXCELマクロで注文番号をアルファベット3文字から始まる種類とそれ以外に分け、B列の日付の昇順に並べ替えたいです。注文番号はA列にあり、VLOOKUPを使ってB列に日付が表示されます。初心者なので、具体的な手順を教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>この場合に、アルファベット3文字から始まるA6,A7の種類の注文番号"以外"を削除し ここだけであれば、 Sub try() Dim RegExp As Object Dim r As Range Set RegExp = CreateObject("VBScript.Regexp") RegExp.Pattern = "^[a-zA-Z]{3}\d+" For Each r In Range("A1", Cells(Rows.Count, 1).End(xlUp)) If Not RegExp.Test(r.Value) Then r.ClearContents End If Next Range("B1", Cells(Rows.Count, 2).End(xlUp)).Offset(, -1) _ .SpecialCells(xlCellTypeBlanks).EntireRow.Delete Set RegExp = Nothing End Sub 例えばこんな感じかな? >B列の日付の昇順に、残った注番を並べ替えたいです。 ここはマクロの自動記録でも出来る範囲かと。 ご参考程度に。

hamanyaaki
質問者

お礼

回答ありがとうございます! 早速試してみます!

hamanyaaki
質問者

補足

これでうまくいく…と思ったのですが、 マクロとは関係ない並べ替えで別の問題が出てきまして… もしよろしければこれに関しても教えていただけませんでしょうか? 【状況】 B列には日付(20090208のような形式)以外に 文字列、空白セルも合わせて並んでいます。 B列↓ 未回答 空白セル 20090208 20090210 未定 空白セル 20090101 【実現したいこと】 日付昇順 ↓ 文字列(未定、未回答) ↓ 空白セル の順に並べ替えをしたいです。 状況補足 ・全ての文字列はVLOOKUP関数の結果として表示されています。 ・この操作をマクロに組み込むことを考えています。 ・空白セルは目立たなければ他の記号などに置き換えても構いません。 このような感じなのですが…いかがでしょうか?

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

#1です。 マクロではなく通常の並べ替えの操作で、 >日付昇順 > ↓ >文字列(未定、未回答) > ↓ >空白セル の順に並びませんか? 並べばその操作を記録するだけなのですが。

hamanyaaki
質問者

補足

日付昇順  ↓ 空白セル  ↓ 文字列(未定、未回答) の順に並んでしまうんです。 空白セルには実際には数式が入っているからでしょうか…? 削除マクロ教えていただきありがとうございました! ↓別質問で立てましたのでこの質問を締め切らせていただきます。 http://oshiete1.goo.ne.jp/qa4735573.html