Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


64 / 13620 ツリー ←次へ | 前へ→

【82034】テーブルのソートをマクロで行いたい トリコ 22/6/4(土) 8:02 質問[未読]
【82035】Re:テーブルのソートをマクロで行いたい トリコ 22/6/4(土) 15:19 回答[未読]
【82037】Re:テーブルのソートをマクロで行いたい マナ 22/6/6(月) 22:00 発言[未読]

【82034】テーブルのソートをマクロで行いたい
質問  トリコ  - 22/6/4(土) 8:02 -

引用なし
パスワード
   同じフォーマットの表のシートが多数あります。
シートの表を日付でソートするマクロ(A)を組んでいたのですが、表をテーブルに変換することにしました。
すると、テーブルにソートマクロを使うとエラーで止まるようになりました。
改めて「マクロを記録」で記録してみたところ(B)、表の時は具体的なシート名等はなかったのですが、
テーブルでマクロを記録するとテーブル名が固定されて記録されてしまいます。

これをどのシートのテーブルでも使える汎用のマクロにすることはできないでしょうか。
よろしくお願いします。

(A)
  ActiveWorkbook.ActiveSheet.AutoFilter.Sort.SortFields.Clear
  ActiveWorkbook.ActiveSheet.AutoFilter.Sort.SortFields.Add2 Key:=Range( _
    "D4"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
    xlSortNormal
  With ActiveWorkbook.ActiveSheet.AutoFilter.Sort
    .header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
  End With

(B)
  ActiveWorkbook.Worksheets("シート (5)").ListObjects("テーブル11").Sort.SortFields.Clear
  ActiveWorkbook.Worksheets("シート (5)").ListObjects("テーブル11").Sort.SortFields.Add2 _
    Key:=Range("テーブル11[[#All],[記録日時]]"), SortOn:=xlSortOnValues, Order:= _
    xlDescending, DataOption:=xlSortNormal
  With ActiveWorkbook.Worksheets("シート (5)").ListObjects("テーブル11").Sort
    .header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
  End With

【82035】Re:テーブルのソートをマクロで行いたい
回答  トリコ  - 22/6/4(土) 15:19 -

引用なし
パスワード
   ▼トリコ さん:
自己レスですが、、、
テーブル名などを取得する方法がわかったので、
具体的な名前になってるところを変数にして取得した値を代入すればいけるかなと思いました。
やってみます。

【82037】Re:テーブルのソートをマクロで行いたい
発言  マナ  - 22/6/6(月) 22:00 -

引用なし
パスワード
   ▼トリコ さん:
、、
>テーブル名などを取得する方法がわかったので、


シートにテーブルが1つしかないなら
名前でなく、インデックス番号で。
ActiveSheet.ListObjects(1)

64 / 13620 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free