[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォルダを開くマクロ』(ゴンタ)
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) '右クリックで該当資料を開く If Target.Row > Cells(Rows.Count, 1).End(xlUp).Row Then Exit Sub If Target.Count > 1 Then Exit Sub Dim Dammy As Variant Dammy = Shell("explorer.exe " & ThisWorkbook.Path & "\番号別\" & Target.Value, vbNormalFocus) Cancel = True End Sub
この様なマクロで、ターゲットと同じ名前のフォルダを 番号別フォルダの中から開いています 今回質問したい内容はターゲットとフォルダ名が完全一致ではなく一文字違っても 開く方法です ターゲットの文字数は常に8文字で一文字違う場所は左から5文字目です 例えばターゲットの内容が 351r0987の場合でも351rk987でも番号別フォルダの中の ~~ ~~ 351r0987の名前のフォルダを開くマクロです Excel2003、WindowsXPです 宜しくお願いします
こんばんは。 ご質問の内容は、以下のような手順でできるかと思います。
(1) FileSystemObjectのSubFoldersプロパティで、フォルダ名(.Name)を取得 (2) LIKE演算子で、「351r?987」と一致するものを取得
<ご参考> 「Folderオブジェクト - SubFoldersプロパティ」 http://officetanaka.net/excel/vba/filesystemobject/folder14.htm
「正規表現のようなマッチング」 http://officetanaka.net/excel/vba/tips/tips35.htm
左から5文字目を「?」に変える WorksheetFunction.Replace(Target.Value,5,1,"?")
(コタ)
コタさん 返信有難う御座います リンク先 Folderオブジェクト - SubFoldersプロパティ を見て、.Countの所を .Nameに変えてマクロを動かしたら オブジェクトは、このプロパティまたはメソッドをサポートしていません。 とのエラーが出て来ます。 >FileSystemObjectのSubFoldersプロパティで、フォルダ名(.Name)を取得 とは .Count を .Name に変えると言うのとは違うのでしょうか?(Countの方はフォルダ数が出て来ます) お時間が取れた時にお教え下さい。 (ゴンタ)
書き方がまずかったですね。正しくは↓ ということでした。
(1) FileSystemObjectのSubFoldersプロパティで、サブフォルダのコレクションを取得して、 それぞれのフォルダ名(.Name)を取得
Nameプロパティは単一のフォルダオブジェクトに対するプロパティなので、上のようなエラーになります。
SubFoldersとNameを使っているコードを探したら、ここの過去スレにありましたので、ご参照ください。 https://www.excel.studio-kazu.jp/kw/20050711132657.html
(コタ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.