
こちらの質問の続きになります。
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を入れて、非表示(;;;)にしてあります。最初の並び替えに戻すための救護策です。
![「[EXCEL]全てのチェックボックスにレ」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/1/1138040_57d4eb1a7a05d/M.jpg)
お探しの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ランキング
-
Excelマクロで空白セルを詰めて...
-
複数ブックの複数セルの抽出教...
-
VBAの指示の内容 昨日こちらで...
-
[EXCEL]全てのチェックボックス...
-
エクセルVBAで 2種のリストを...
-
Excel で行を指定回数だけコピ...
-
ExcelVBAで改ページを追加したい
-
Webクエリで困っています
-
VBA 貼付先範囲(行)がいっぱ...
-
拡張子「.HUF(.huf)」のファ...
-
携帯で音楽を聞く方法
-
スマホ機種変更で旧機種のGoogl...
-
V602SHで動画を見るには?
-
ドメイン名が、ak.sky.tkk.ne.j...
-
mp4か3gpか
-
ドコモの電話帳バックアップに...
-
携帯電話でパソコンでmpeg等で...
-
音楽をCDからとりこむ方法
-
sdカードに音楽を書き込みたい
-
携帯が圏外のまま・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロで空白セルを詰めて...
-
VBA:同じ文字列データの比...
-
Excel で行を指定回数だけコピ...
-
エクセル:VBAで月変わりで、自...
-
Excel VBA インデックスの境...
-
excelの差込印刷で可視セルだけ...
-
エクセルVBAで 2種のリストを...
-
EXCELマクロで全シート対...
-
エクセルVBAで SendKeys "{TAB}"
-
VBA別シートの最終行の下行へ貼...
-
エクセルVBA 別シートの複数の...
-
Excel VBAでシート内全体に非表...
-
エクセルVBAで実行時エラー...
-
Excel VBA元データから別シー...
-
VBA 最終行取得からの繰り返し貼付
-
vbaでコントロールブレイク
-
歯抜けの時間を埋めて行の挿入
-
VBAで複雑な構成の転記
-
VBAで条件が一致する行のデータ...
-
Excelマクロ データが上書きさ...
おすすめ情報