Excel VBA質問箱 IV

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

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


16885 / 76732 ←次へ | 前へ→

【65310】Re:エクスプローラの昇順とエクセルの昇順
発言  kanabun  - 10/5/7(金) 19:10 -

引用なし
パスワード
   ▼pon さん:

>>([A2]以降に ファイルリストがあるとします。拡張子は同じとします)
>実際は
>フルパスになっていて
>そのためかと思いますがうまく動作できませんでした

そのコードの処理法は、
>   S = arry(i, 1)
    'セルの文字列を先頭から一つづつ見ていって
>   For j = 1 To Len(S)
      ' 文字が数字なら
>     If Mid$(S, j, 1) Like "#" Then
        '数字の前の文字列 と
        ' それ以降の文字列を数値にして書式"00000000"
        ' でFormatした文字列を結合したものとする
>       arry(i, 1) = Left$(S, j - 1) _
>       & Format$(Val(Mid$(S, j)), String$(20 - j, "0"))

ということをしていますから、
パス名に数字が入っていたりすれば、
パス名の数値部分を数値にして並び替えようとします。

こちらでは、ponさんが提示されたようなサンプルデータを
想定して検証してみているわけですから、

'---------------------------------------
(こちらが検証に使ったデータは 以下のようなものです
  これは Excelでソートしたあとの並び順です)
▼Filename
A0003.txt
A010.txt
A033.txt
A11.txt
A110.txt
A1100.txt
A12.txt
A13.txt
A3.txt

  (Try1マクロで並び替えると、以下のような並びになります。
    この並び順は エクスプローラと同じ並び順です)
▼Filename
A0003.txt    A000000000000000003
A3.txt    A000000000000000003
A010.txt    A000000000000000010
A11.txt    A000000000000000011
A12.txt    A000000000000000012
A13.txt    A000000000000000013
A033.txt    A000000000000000033
A110.txt    A000000000000000110
A1100.txt    A000000000000001100
'-------------------------------------------------

pon さんのほうでも、最初にテストするとき、
ファイルリストはパス名の付いていない裸のファイル名で
検証していただきたかったです。

パス名付きのファイル名をファイル名の部分で並び替えるなら、
For〜Next部分を 以下のように加筆して試してみてください。

 For i = 1 To UBound(arry)
   S = arry(i, 1)
   j = InStrRev(S, "\")
   If j Then
     S = Mid$(S, j + 1)
     For j = 1 To Len(S)
       If Mid$(S, j, 1) Like "#" Then
         arry(i, 1) = Left$(S, j - 1) & Format$(Val(Mid$(S, j)), String$(20 - j, "0"))
         Exit For
       End If
     Next j
   End If
 Next i

0 hits

【65307】エクスプローラの昇順とエクセルの昇順 pon 10/5/7(金) 16:42 質問
【65308】Re:エクスプローラの昇順とエクセルの昇順 kanabun 10/5/7(金) 17:23 発言
【65309】Re:エクスプローラの昇順とエクセルの昇順 pon 10/5/7(金) 17:48 発言
【65310】Re:エクスプローラの昇順とエクセルの昇順 kanabun 10/5/7(金) 19:10 発言
【65410】Re:エクスプローラの昇順とエクセルの昇順 pon 10/5/19(水) 10:02 お礼

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