こちらの質問の続きになります。
https://oshiete.goo.ne.jp/mypage/history/question/
現状こちらのママチャリさんのやり方でやって一度解消しておりましたが、
全てのチェックボックスにレ点がなくなったらリスト順を元に戻すやり方を知りたいです。
ではないと、全てのレ点がなくなったときにリストがそのままばらけたままなので…。
(恐らくGの評価点の隣にH列にリストの上から1、2、3と打ち込んで自動的に反映するよう設定…がよいのですが、その方法がわからずです。)
お手数おかけしますが、ご存知の方いらっしゃいましたらご教授ください。
No.1ベストアンサー
- 回答日時:
Worksheet_Calculateイベントプロシジャをちょっとだけ、変えてみました。
従来の並べ替えキーは、評点(降順)だけでしたが、それにDataName(昇順)を追加しています。
これにより評点が全てゼロの場合、DataName順に並ぶようになります(DataName順が本来の並びと仮定しています)。
話は脱線しますが、今回の質問は質問になっていないような気がします。たぶん、私とWindFallerさん以外には意味が通じないです。広く回答を求めるのであれば、過去の経緯を知らなくても回答できるように質問をまとめるべきです。
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Me.Sort.SortFields.Clear
Me.Sort.SortFields.Add Key:=Range("G3"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
Me.Sort.SortFields.Add Key:=Range("A3"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With Me.Sort
.SetRange Range("A3:G" & Me.Cells.SpecialCells(xlCellTypeLastCell).Row)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Application.EnableEvents = True
End Sub
No.2
- 回答日時:
まあ、私は、前回、そのあたりまでは見越していましたが、おそらく書いても、前回の私のコードの延長では、採用するつもりもないようでしたら、この内容は見る必要もないでしょうね。
要するに、チェックボックスをオンになった時に、その前回の順位を残せば済むことです。そしてOffになった時に、その順位を戻せばよいという考え方です。ただ、チェックボックスを取り払った時点で、私のコードではなんともしかねます。
データは、前回のままのものです。
'//
Sub SortMacro()
Dim Rng As Range
Dim NameObj As String
Dim Cntl As Object
Dim stFlg As Long
Dim cbNo As Long
Dim i As Long
Dim sh1 As Worksheet
Set sh1 = ActiveSheet 'シート
On Error Resume Next
NameObj = Application.Caller()
If Err() <> 0 Then MsgBox "このマクロは直接動きません。", vbExclamation: Exit Sub
On Error GoTo 0
Set Cntl = ActiveSheet.CheckBoxes(NameObj)
'二番目の方式
' cbNo = Mid(NameObj, InStrRev(NameObj, Space(1), , vbTextCompare))
' cbNo = Val(cbNo) + 1
cbNo = Cntl.TopLeftCell.Column '物理列
With sh1
'起点
Set Rng = .Range("A3:F11") 'データ範囲
End With
With Rng
If Cntl.Value = xlOn Then
For i = 1 To Rng.Rows.Count
sh1.Cells(3, 25 + cbNo).Cells(i, 1).Value = i
Next i
stFlg = 2
.Resize(, 25 + cbNo).Sort Key1:=sh1.Cells(3, cbNo), Order1:=stFlg, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, SortMethod:=xlPinYin
Else
stFlg = 1
Rng.Resize(, 25 + cbNo).Sort Key1:=sh1.Cells(3, 26 + cbNo - 1), Order1:=stFlg, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, SortMethod:=xlPinYin
End If
End With
End Sub
'//
なお、以下の画像で、ひとつだけトリックがあります。それは、A列の2行目A2 に、0を入れて、非表示(;;;)にしてあります。最初の並び替えに戻すための救護策です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) PowerPointの箇条書きの既定のリストを変更する方法について 1 2022/12/15 18:41
- Excel(エクセル) Excelで作成しているシート(表) 5 2023/06/15 10:20
- Excel(エクセル) Libreoffice calcで人名を取り消し線を入れたい。 2 2022/09/10 15:27
- その他(IT・Webサービス) Googleマップで検索した結果のリストを作る方法はありますか? 1 2022/11/15 10:17
- Chrome(クローム) Google Cromeのブックマークのリストの複数の項目を一括して消去する方法はないのでしょうか? 1 2023/08/16 21:15
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- その他(趣味・アウトドア・車) アマチュア無線の「村」まで入った「市郡区番号リスト」を探しています 4 2022/08/27 07:07
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- Excel(エクセル) Excelで漢字人名が勝手に並び変わる(続) 4 2023/03/21 21:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA 別シートの複数の...
-
vbaでコントロールブレイク
-
EXCEL(マクロ)2つのデータ比...
-
Excel VBA インデックスの境...
-
A列で同じ日付をグループ化し、...
-
情報系の授業の課題なのですが...
-
セルの一部を任意の条件で貼り...
-
エクセルVBAで 2種のリストを...
-
VBA:同じ文字列データの比...
-
FOMAカード(UIM)異常
-
代替機にキズ
-
携帯会社が確認もなしにデータ...
-
拡張子「.HUF(.huf)」のファ...
-
ディーガからmicroSDに取り込ん...
-
TOとFROMがつく理由
-
LAVIE Direct DT PC-GD298ZZAL...
-
ハードディスクの電源が入らない
-
705NKへの電話番号データ移行(...
-
携帯機種変更で直接メモリカー...
-
(携帯会社じゃない場所で)スマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
エクセルVBA 別シートの複数の...
-
シャープのアクオス sh-m25 を...
-
excelの差込印刷で可視セルだけ...
-
Excel VBA インデックスの境...
-
VBA:同じ文字列データの比...
-
エクセルVBAで 2種のリストを...
-
エクセル:VBAで月変わりで、自...
-
歯抜けの時間を埋めて行の挿入
-
エクセルVBAで SendKeys "{TAB}"
-
VBAで条件が一致する行のデータ...
-
VBA別シートの最終行の下行へ貼...
-
EXCELマクロで全シート対...
-
Excel VBAでシート内全体に非表...
-
VBA 貼付先範囲(行)がいっぱ...
-
VBAで複数シート選択
-
【VBA】UserForm1の中で使うワ...
-
VBAで複雑な構成の転記
-
【WORD差し込み印刷】複数レコ...
-
エクセルVBAでの日付順のデ...
おすすめ情報