
マクロで行の並び替えを行いたいのですがうまく出来ません・・・。
A列には管理番号としてアルファベットの大小文字と数字の組み合わせの4桁の文字列(必ず4文字固定)があります。
B列には品名(例:ポテトチップス等)、C列にはサイズ(例:20㎝等)、D列にはURL(例:http//....)
が記載されています。
以下の様にA列の管理番号を基準として行を並び替えたいのですが、
・A列
aa11
Ab01
Ab02
AB01
AB02
Ac01
Ac02
Ac03
AC01
AC02
AC03
ADA1
以下の様な並び替えしか出来ません。
上記のa→A→b→B..の並びににするのはどうすれば良いでしょうか?
・A列
aa11
Ab01
AB01
Ab02
AB02
Ac01
AC01
Ac02
AC02
Ac03
AC03
ADA1
No.2ベストアンサー
- 回答日時:
添附圖參照
1.範圍 H2:H54 に上から夫々文字列 a、A、b、B、c、C、…、z、Z を入力
2.式 =CODE(H2) を入力したセル I2 のフィルハンドルを「エイヤッ!」と
 ̄ ̄ダブルクリック
3.範圍 J2、J3 に夫々數値 101、102 を入力後、範圍 J2:J3 のフィルハン
 ̄ ̄ドルを「エイヤッ!」とダブルクリック
4.範圍 I2:J53 を選擇⇒マウスカーソルを[数式バー]に放り込んで、既存の
 ̄ ̄I3 を文字列 Ref に上書きして Enterキーをパシーッ
5.式 =VLOOKUP(CODE(MID($B2,C$1,1)),Ref,2,0) を入力したセル C2
 ̄ ̄を右隣にオートフィル
6.セル E2、F2 に夫々次式を入力して、範圍 C2:F2 のフィルハンドルを
 ̄ ̄「エイヤッ!」とダブルクリック
 ̄ ̄ ̄E2: =RIGHT(B2,2) を入力
 ̄ ̄ ̄F2: =CONCAT(C2:E2)
7.範圍 A:F 選擇⇒Tabキーをツン、ツン、… してセル F1 をアクティブ
 ̄ ̄にして、[昇順]に並べ替え
其の結果が添附圖左下です。

回答有難うございます。
同様のコード関数を使った方法も試したのですが、
色々と具合が悪くて都合により処理をマクロで行いたい状況です。
折角ご回答頂いたのに申し訳ございません・・。
No.3
- 回答日時:
[No.2お礼]へのコメント、
》 都合により処理をマクロで行いたい
どうぞ御好きな様になさッて下さい。マクロ音痴な私は退散します。
因みに、「管理番号」は全て半角文字と勝手讀みしてましたが、並べ替え対象の文字・數字データは大文字小文字のみならず、全角半角の混在チャンポン状態てな事は無いですよね?
ご返信ありがとうございます。
折角ご回答頂いたのに申し訳ございません・・・。
管理番号は全て半角になり全角半角は混在しておりません。
No.1
- 回答日時:
並べ替えのオプションで「大文字と小文字を区別する」ように設定する。
以下、「マクロの記録」で行った結果。(A1セルはデータラベルとして扱う)
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("A2:A13") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:A13")
.Header = xlYes
.MatchCase = True
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
この中の
.MatchCase = True
が、並べ替えの「大文字と小文字を区別する」オプションになります。
特に指定していないと False になり、大文字と小文字を同一視します。
・・・
あるいは並べ替えの「ユーザー定義」を設定すれば楽だろうと思う。
a
A
b
B
c
C
d
D
と新規リストを作成して、そののちに並べ替えをすればいい。
・・・
とまあ、「マクロの記録」を使って、Excelの機能をそのまま使うという解決方法もあります。
色々な機能があるので、Excelを使っている人の中でそれらの機能を全部マクロとして理解している人は僅かだろうと思います。
分からなくても当然であり、それが普通なんです。
(そもそもExcelの機能を知らない人もいる、というか全部知っている人は少ない)
ご回答ありがとうございます。
「プロパティまたはメソッドが見つかりません。(エラー番号:423)」のエラーが発生致しました。
マクロに詳しく無くネットにあるサンプルを多少改変して
利用するぐらいしか出来ませんが
質問前に色々調べて「MatchCase:=True」を入れればいいのかと思って以下を実行しましたが駄目で質問しました。
Sub test_0()
Range("A1:D350").Sort _
Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlYes, _
MatchCase:=True
End Sub
また、マクロで行いたいので今回の質問の趣旨と異なりますが、
並べ替えの「ユーザー定義」の件につきましても既に実行済みになります。
しかし、記載頂いた様な新規リストを作成し行いましたが何故か大文字小文字を区別した並び替えが出来ませんでした。
オプションの大文字小文字区別のチェックなども入れたり外したりしてもダメでした。
Excel2007なのですが何かソフト自体に問題があるのでしょうか・・・。
4桁の管理番号をE,F,G,Hセルにleft関数等で4文字を1文字づつ格納して
並び替えのレベルをE→F→G→Hの優先順位で4つ作った場合のみ正常に並び替え出来ました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 複数列のある文字を優先して1列に表示したいです 2 2022/12/03 12:07
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- Excel(エクセル) エクセルデーターの並び替え 5 2022/08/06 09:59
- 数学 何故ベクトルの和の定義は↑AB+↑BC=↑ACなのですか? 11 2022/05/19 19:03
- 数学 文字式の「お作法」として 2ab+2bc+「2ca」 と最後、acではなくcaとするようですが それ 2 2023/01/14 18:04
- スポーツサイクル 自転車のタイヤサイズのえらびかた 3 2023/06/17 21:45
- Excel(エクセル) 上から順にすべてのデータを抽出したい 3 2023/08/25 15:29
- 数学 数学ベクトル 添付の問題ですが、 図の他に、AB=4, ベクトルABとベクトルACの内積が6 である 1 2022/12/30 14:10
- 食べ物・食材 北本トマトカレー 1 2022/09/13 14:10
- CM 安倍晋三 阿部心臓 東日本大震災 ACジャパン ACのCM 地震 レベル 関係者 理事長 電話 1 2022/10/15 10:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルの循環参照、?
-
【関数】同じ関数なのに、エラ...
-
【マクロ】列を折りたたみ非表...
-
【マクロ】【配列】3つのシー...
-
【マクロ】アクティブセルの時...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】EXCELで読込したCSV...
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】A列にある、日付(本...
-
vba テキストボックスとリフト...
-
エクセル
-
【エクセル】期限アラートについて
-
Excel 複数のセルが一致すると...
-
【マクロ】WEBシステムから保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報
Excel2007になります。
普通に並び替えを行うと画像上端の様になります。
画像下段の様に並べ替えたいのですがうまくいきません。
やってみましたが以下の部分が私の理解力不足でわかりませんでした。
I2:J53を名前ボックスで「Ref」と記載するのでしょうか?
4.範圍 I2:J53 を選擇⇒マウスカーソルを[数式バー]に放り込んで、既存の
 ̄ ̄I3 を文字列 Ref に上書きして Enterキーをパシーッ
J、K、L、Mに4桁を1文字づつ格納して並び替える事にしました。
Sub test()
Range("A1:M250").Sort key1:=Range("K1"), order1:=xlAscending, _
key2:=Range("L1"), order2:=xlAscending, _
key3:=Range("M1"), order3:=xlAscending, Header:=xlYes
Range("A1:M250").Sort key1:=Range("J1"), order1:=xlAscending, _
Header:=xlYes
End Sub
コード関数にて比較など勉強にありました。
ご回答有難うございました。