![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.6ベストアンサー
- 回答日時:
こんばんは。
<標準モジュール>
というのは、場所のことです。
Alt キーを押しながら、F11 を押すと、Visual Basic Editor 画面が出てきます。そこで、メニューの[挿入]-[標準モジュール(M)]をクリックしますと、白い画面が現れます。そこに、切り取り線の中のコードを貼り付けます。Web上から直接でも可能です。
後は、同じく、Alt キーを押しながらF11 を押すと、元の画面に戻りますので、
最初に、マウスポインターを、並び替えるをするデータの
左上でも置いてから、
[ツール]-[マクロ]-[マクロ]- SortStringPriority
をクリックすれば、並び替えるはずです。こちらのデータではうまく行っています。
なお、フォーム・ツールのボタンに、このマクロを登録しておけば、メニューから、マクロを呼び出さなくても稼動します。
遅くなって申し訳ありません。
たびたびありがとうございます。
実践してみましたが、A1のデータだけ並び替えられません。
どうしてでしょう?
マウスポインタをデータのどこかに置いて実行しても同じです。
No.5
- 回答日時:
#4 の Wendy02 です。
実害はありませんが、みっともないので、訂正します。
訂正
#For i = 0 To 10 ← ●
# c.Value = Replace(c.Value, Chr(177 + i), i)
# Next i
#Next
下から6行目
For i = 0 To 9
に換えてください。
No.4
- 回答日時:
こんにちは。
Excelの 達人の方たちが、ダメだったとすると、もう、マクロ処理でしかないのかと思います。
>私が試したのは、A、B、C…7、8、9と順に一桁です。
>ソートをかけたいコードは*******-*という形です。
これでは、読み手側の想像の範囲でしかありません。こういうスタイルの表示ですと、解答に結びつかないかもしれません。本来は、データ・サンプルがほしいですね。
まず、今のところ、全部、半角であることを想定しています。そうしないと、かなりややこしくなります。
ともかく、こちらの想像の中で、マクロを作ってみました。マウスポインタを並び替えする列のどこかにおいてから、マクロを実行してください。また、フィールド名(1行目のタイトル)は、必ず、存在するものとして、実行されます。
なお、フォームボタンなどに取り付けると良いかと思います。
'---------------------------------------------------------
'<標準モジュール>
Sub SortStringPriority()
Dim Rng As Range, c As Range, i As Integer
If IsEmpty(ActiveCell) Then Exit Sub
Set Rng = Range(ActiveCell.End(xlUp), _
Cells(65536, ActiveCell.Column).End(xlUp))
Rng.NumberFormatLocal = "@"
Application.ScreenUpdating = False
For Each c In Rng
For i = 0 To 10
c.Value = Replace(c.Value, i, Chr(177 + i))
Next i
Next
Rng.Sort Key1:=Rng.Range("A2"), _
Order1:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
For Each c In Rng
For i = 0 To 10
c.Value = Replace(c.Value, Chr(177 + i), i)
Next i
Next
Application.ScreenUpdating = True
End Sub
'---------------------------------------------------------
ご回答ありがとうございます。
返事が遅くなり申し訳ありません。
私の技術が未熟で、エクセルのマクロをいじってみましたがよく分かりませんでした。
この標準モジュールをどこかにコピーすればいいんでしょうか?
No.3
- 回答日時:
>一桁です。
1桁であることを好都合に別列に=IF(CODE(MID(A1,8,1))>64,CODE(MID(A1,8,1)),CODE(MID(A1,8,1))+130)
をつくり、この列とともにソートする。130は90-48+1より大であれば他の数でよい。
コンピュターは文字コードの順に並べます。ソフトがうまく便利に並べているように見えるのは、ソフトが修正ソートキーを別に見えないところで作ってくれているからです。
もっとルール性のない並び順なら、VLOOKUPでも使って、キーを別途
の列に作って、その列でソートすればよい。
表の定義の列を使いたくなければ、少数ならば
=VLOOKUP(A11,{"秋",1;"春",2;"夏",3},2,FALSE)
のような書き方もできます。
ご回答ありがとうございます。
教えていただいたやり方で試してみましたが、できませんでした。
ソートをかけたいコードが、一桁ではなかったからでしょうか…
No.2
- 回答日時:
こんにちは。
maruru01です。多分、ユーザー設定リストでは出来ないと思います。
以下、作業列と名前定義を利用した方法です。
仮にデータがA1~Axxxにあるとします。
データの先頭(A1)をクリックして、メニューの[挿入]→[名前]→[定義]で、
[名前]:適当な名前(仮に「変換1」とします。)
[参照範囲]:「=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A1,"0","あ"),"1","い"),"2","う"),"3","え"),"4","お")」
と設定して[追加]します。
(参照範囲の中の「$A1」はデータの先頭位置(A1)に頭に"$"を付けたものです。データ位置によって適宜修正して下さい。)
さらにもう1つ、
[名前]:適当な名前(仮に「変換2」とします。)
[参照範囲]:「=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(変換1,"5","か"),"6","き"),"7","く"),"8","け"),"9","こ")」
と設定して[OK]します。
そうしたら、どこか適当な列を作業列として、そこに、
=変換2
と入力すると、同一行のデータの中の数字が、
0→あ
1→い
・・・
9→こ
と置換されて表示されますので、下へデータ行分コピーします。
これでデータ列とこの作業列を一緒に、作業列をキーにして並べ替えればOKです。
作業列は非表示にしておいても構いません。
なお、一緒に並べ替えるので離れた場所に作業列があるとやりにくいかも知れません。
ご回答ありがとうございます。
希望のソートができました!
細かく丁寧に教えていただいてありがとうございました。
ただソートは毎月発生する作業なので、この長~い式を毎回コピーしながらするのは大変ですね。
…というか最初の入力も(笑)
とりあえずはこの方法でしのぐとして、ユーザー設定リストなどで、何回もカンタンにソートできる方法は
ないんでしょうかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Excel(エクセル) Excelの50音順ソートを全ての行列に適用するには? 4 2022/12/05 11:28
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) Excelのソート(並べ替え) 2 2022/05/15 22:54
- Excel(エクセル) Excel 効率的な名簿と得点の管理の仕方 8 2022/08/07 08:15
- Excel(エクセル) エクセルのソート方法について 1 2023/01/13 00:01
- アジア ベトジェットエアの登録について 1 2023/07/03 14:43
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- Excel(エクセル) excel 行でソートすると計算式が上手くいかない。 6 2022/06/01 08:18
- Excel(エクセル) 重複しているか否かをソートせずに判断する方法ありますか? 2 2022/07/06 21:16
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
エクセルで文字が混じった数字を並べ替えしたいのですが
Excel(エクセル)
-
アルファベットを含む数をエクセルでうまく並べ替えをしたい。
Excel(エクセル)
-
Excelで文字+数字のデータの並び替えについて
Excel(エクセル)
-
-
4
【Excel・並べ替え】かな、アルファベット、数字などの順序
Excel(エクセル)
-
5
Excel 並べ替え順序
その他(Microsoft Office)
-
6
VBAにて 文字と数字が混在してるデータの並び替え
Excel(エクセル)
-
7
Excel2017 フィルタ昇順並びがA1、A10、A11、A2、A3となってしまう。
Excel(エクセル)
-
8
エクセル SMALL の機能を文字列でもできないか
Excel(エクセル)
-
9
エクセルの並び替えで日本語を先にしたい
Excel(エクセル)
-
10
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LEFT関数とIF関数の組み合わせ...
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
VBA 指定した列にある日時デー...
-
エクセルマクロPrivate Subを複...
-
CSVファイルの「0落ち」にVBA
-
Accessのレポートで繰り返し表...
-
【Excel VBA】セルで列番号を指...
-
エクセルで最初の行や列を開け...
-
エクセル 重複したデータを別...
-
<急募>エクセルデータの関数を...
-
アクセス 取り込み時に、桁数(...
-
Excelの降順の仕方
-
csvデータをエクセルで加工して...
-
VLOOKUPの列番号の最大は?
-
エクセル 1つのシートを日付で...
-
エクセルで以下の条件付きの乱...
-
シェイプの個数を調べるには・・・
-
VBA Splitで「引数の数が一致...
-
例えば、AさんからGさんまでがA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
「段」と「行」の違いがよくわ...
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
CSVファイルの「0落ち」にVBA
-
エクセルで住所を県と市・郡と...
-
Excelの行数、列数を増やしたい...
-
エクセルで複数列の検索をマク...
-
エクセルマクロの組み方
-
Alt+Shift+↑を一括で行うには、...
-
えABのある列って
-
エクセルのソートで、数字より...
-
エクセル マクロ 範囲指定で...
-
VBAで結合セルを転記する法を教...
-
VBAで別ブックの列を検索し、該...
-
エクセルマクロPrivate Subを複...
-
列方向、行方向の定義
-
リストからデータを紐付けしたい
-
Accessのレポートで繰り返し表...
おすすめ情報