[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロで並び替え』(りりあん)
支店名を並び替えるマクロを考えています。 マクロでユーザー設定に登録している項目で並び替えをしたいと思います。 自分のPCでしたらデータ⇒並び替え⇒オプション⇒で並び替えをしたい項目を設定 すればよいのですが、何台かのPCで同じマクロを使っての作業をしたいと思って いま す。
ユーザー設定に登録している順番が違っている為、私が登録したマクロを他のPCで マクロを実行すると並び替えのオーダー番号が違う為並び替えが出来ません。
ユーザー設定を使用しないで任意の並び替えが出来る事は出来ますか? ちなみに並び替えをしたい順番ですが・・・ 札幌支店・青森支店・八戸支店・岩手支店・仙台支店・・・といった感じです。
リストはA列〜AC列まであり、B列の支店名を上記の順番で並び替えをしたいの です。 ※作成するたびにリストの件数は増減します。
ユーザー設定を使用しないで任意の並び替えは無理と言うようでしたらマクロで データ⇒並び替え⇒オプション⇒で並び替えをしたい項目を指定するような方法でも いいです。 『並び替えの順序を指定してください』みたいなメッセージとかが出るといいのです が・・・
よろしくお願いします。
17:41 りりあん
ユーザー設定リストの番号を返すものに GetCustomListNum メソッド があります。 取得した番号を引数OrderCustomに指定。 詳しくはヘルプを参照のこと。 こう言うケースを回避するために、支店番号を割り振ったりもしますね。 (みやほりん)(-_∂)b
Sub test()
Dim las As Long
With Sheets("Sheet1")
las = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A1:AC" & las).Select
MsgBox "並べ替えの設定をしてOKボタンを押してください。しない場合はOKボタンを押してください。"
Application.Dialogs(xlDialogSortSpecial).Show
.Range("A1").Activate
End With
End Sub
ma
みやほりんさんご回答ありがとうございます。 メゾットもう少し勉強してみます。(@_@。
maさんマクロのコードありがとうございます。 この内容だとSheet1でマクロを実行するという内容ですか?
すみませんがシート名を固定しないどのシートでもマクロが 実行できるようにしたいのですが・・・
5/28 9:14 りりあん
昨日“みやほりん”さんに教えてもらったマクロのコードとmaさんのマクロのコードを少し いじって見ました。 (マクロ初心者でコードの意味がわからないので多分変なコードがあると思いますが・・・)
途中でコンパイルエラーが出てしまいました。 どうしたら良いでしょうか?
Dim myRow As Long
myRow = Range("A" & Rows.Count).End(xlUp).Row
Range("A1:AC" & las).Select
MsgBox "並べ替えの設定をしてOKボタンを押してください。"
Application.Dialogs(xlDialogSortSpecial).Show
Range("A1").Activate
Range("AB2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-15]=""*"",IF(MOD(RC[-19],2)=1,1,2),RC[-15]="""")"
Range("ab2").Copy Range("ab3:ab" & Range("g" & Rows.Count).End(xlUp).Row)
Application.CutCopyMode = False
Columns("AB:AB").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Dim myC As Range
Dim myRow As Long ⇒ココでコンパイルエラーが出ました。
myRow = Range("A1").CurrentRegion.Rows.Count
Cells.Font.ColorIndex = xlColorIndexAutomatic
For Each myC In Range("AD1:AB" & myRow)
Select Case myC.Value
Case Is = "1"
myC.EntireRow.Font.ColorIndex = 11
Case Is = "2"
myC.EntireRow.Font.ColorIndex = 41
End Select
Next myC
既に一行目で 変数 myRow を宣言しています。 同一プロシージャ内で二度は宣言できませんので、削除です。 (seiya)
seiyaさんありがとうございました。
無事出来ました。
12:43 りりあん
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.