Excel VBA質問箱 IV

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

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


16786 / 76732 ←次へ | 前へ→

【65410】Re:エクスプローラの昇順とエクセルの昇順
お礼  pon  - 10/5/19(水) 10:02 -

引用なし
パスワード
   ▼kanabun さん:
大変遅くなりました


>>実際は
>>フルパスになっていて
>>そのためかと思いますがうまく動作できませんでした

>>ご提示いただいたコードもう少し勉強してみます


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

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

申し訳ありませんでした

実際のところ
ファイル名の命名規則がいまいちでパターンをつかむ必要がありました

後、取得DTでのテストでは
エクセルシート上でのフルパスでの並べ替えで影響が出るのは
ファイル名の数値部分だけのようでした

レコード的には
\\fuga\20091あ\0401\A08.PDF    
\\fuga\20091あ\0401\A11.PDF    
\\fuga\20091あ\0401\A110.PDF    ←
\\fuga\20091あ\0401\A12.PDF    
\\fuga\20091あ\0401\AB02.PDF    
\\fuga\20091あ\0401\AB03.PDF    
\\fuga\20091あ\0401\AB103.PDF    ←
\\fuga\20091あ\0401\AB12.PDF    
こんなかんじでした
(ファイル名は実際こんな感じです、パスで内容表示みたいな感じ・・)

やり方としては
kanabun さん のアドバイスをもとに、
英字部を4文字用意し A→Aaaa,ABaa
数字部を4文字用意し 08→0008,103→0103
みたいな処理をして、
補助列にフルパスのABaa0103等をいれそこで昇順処理で希望の操作がかないました

ファイル名 AB03.PDF から 数値 03を 取得するに当たり
生まれて初めて正規表現をつかってみました  (*^-^*)
といってもネットで公開のYukiさん関数を利用させて頂いただけですが・・・
使いこなすには難しそうですがとっても強力みたいな感じです


?TESTX("AB103.PDF")
103


Function TESTX(strD)
  'Dim strD  As String
  Dim objSC As Object
  Dim objS  As Object
  Dim objSR  As Object
  Dim strF  As String
  Dim varF  As Variant

  'strD = "ABC 12345678 DEF"

  Set objSC = CreateObject("VBScript.RegExp")

  With objSC
    .Pattern = "\d+"
    .Global = True
    Set objSR = .Execute(strD)
  End With

  For Each objS In objSR
    'Debug.Print objS.Value
    TESTX = objS.Value
    
  Next
End Function


その他、いくつかフルパス加工の関数を用意して
補助列には 上記組み合わせた
if文がネストした長ったらしい数式になってしまいましたが
おかげさまで希望の操作かないました
ありがとうございました

今後もよろしくお願いいたします
1 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 お礼

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