Excel VBA質問箱 IV

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

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


6563 / 13644 ツリー ←次へ | 前へ→

【44455】並び替え オプションキー? kuraki 06/11/17(金) 9:58 質問[未読]
【44458】Re:並び替え オプションキー? Jaka 06/11/17(金) 10:56 発言[未読]
【44472】Re:並び替え オプションキー? kuraki 06/11/17(金) 15:21 質問[未読]
【44476】Re:並び替え オプションキー? りん 06/11/17(金) 15:53 回答[未読]
【44547】Re:並び替え オプションキー? kuraki 06/11/21(火) 12:24 お礼[未読]

【44455】並び替え オプションキー?
質問  kuraki E-MAIL  - 06/11/17(金) 9:58 -

引用なし
パスワード
   マクロでデータの並び替え時、オプションで「ユーザー設定リスト」を利用出来ますよね。
ただ、違うパソコンで並び替えを行う時、「ユーザー設定リスト」を利用しようとすると、下記の問題が発生してしまいます。
1)「ユーザー設定リスト」を定義しなくてはいけない。
2)「ユーザー設定リスト」の順番を合わせなくてはいけない。

そこで、並び替えのリストを、シートに記述しておいて、そのリストで並び替えを行う方法は無いでしょうか?

【44458】Re:並び替え オプションキー?
発言  Jaka  - 06/11/17(金) 10:56 -

引用なし
パスワード
   >1)「ユーザー設定リスト」を定義しなくてはいけない
これは、マクロ記録でできますよね。
以下、マクロ記録とヘルプより
追加したものは、1番最後のものだから、
Application.AddCustomList ListArray:=Array("AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH")
MsgBox "OrderCustomは、" & Application.CustomListCount & "番目"

リストから探す場合は、こんな感じになると思います。
ですが、全く同じのもを探すのは、こんな簡単じゃないと思います。
また、すでにあるのかの確認も必要かも知れませんね。
必要なくなったら削除するとかも必要?

For i = 1 To Application.CustomListCount
  ListArray = Application.GetCustomListContents(i)
  TT = TT + 1
  For ii = LBound(ListArray, 1) To UBound(ListArray, 1)
    ct = ct + 1
    Cells(ct, 1).Value = ListArray(ii)
    Cells(ct, 2).Value = TT
    If ListArray(ii) = "AA" Then
      MsgBox "OrderCustomは、" & i
      'Exit For
    End If
  Next
Next

【44472】Re:並び替え オプションキー?
質問  kuraki  - 06/11/17(金) 15:21 -

引用なし
パスワード
   >リストから探す場合は、こんな感じになると思います。
>ですが、全く同じのもを探すのは、こんな簡単じゃないと思います。
>また、すでにあるのかの確認も必要かも知れませんね。
>必要なくなったら削除するとかも必要?
>
早速解答ありがとうございました。
>必要なくなったら削除するとかも必要?
↑は解決出来ましたが、既にリストがあった場合の対応がやはり必要です。

四苦八苦中です...。

【44476】Re:並び替え オプションキー?
回答  りん  - 06/11/17(金) 15:53 -

引用なし
パスワード
   kuraki さん、こんにちわ。

>↑は解決出来ましたが、既にリストがあった場合の対応がやはり必要です。

GetCustomListNumメソッドでチェックできます。
Sub test()
  Dim ldat As Variant
  ldat = Array("AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH")
  With Application
   NN = .GetCustomListNum(ldat)
   'なかったら
   If NN = 0 Then
     .AddCustomList ListArray:=ldat
     NN = .CustomListCount
   End If
  End With
  '結果
  MsgBox "OrderCustomは、" & NN & "番目"
End Sub

こんな感じです。

【44547】Re:並び替え オプションキー?
お礼  kuraki  - 06/11/21(火) 12:24 -

引用なし
パスワード
   りん さん!!

ありがとうございまいた。
返事が遅くなってしまい、申し訳ありませんでした。

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