Excel (VBA) |
![]() ![]() |
(Windows 11 Pro : Excel 2021)
フォルダー名の変名(括弧内にある西暦部分をを先頭に配置する)
投稿日時: 23/08/13 06:41:27
投稿者: Nubo
|
---|---|
フォルダー名の変名のコードを作成しました。
|
![]() |
投稿日時: 23/08/13 08:18:13
投稿者: simple
|
---|---|
動作しているのですから基本的にOKだと思います。
Sub RenameFolders() Dim fso As Object Dim folderPath As String Dim folder As Object Dim regex As Object 'フォルダの指定 With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Select a Folder" .AllowMultiSelect = False If .Show = -1 Then folderPath = .SelectedItems(1) folderPath = folderPath & "\" End If End With Set fso = CreateObject("Scripting.FileSystemObject") '正規表現の設定 Set regex = CreateObject("VBScript.RegExp") regex.Pattern = "(.*?)[((]([0-9]{4})[))](.*?)" 'サブフォルダのRename For Each folder In fso.GetFolder(folderPath).SubFolders If regex.test(folder.Name) Then folder.Name = regex.Replace(folder.Name, "$2 $1$3") End If Next folder End Sub なお、部品のテストを以下のように実行しました。 Sub test() Dim regex As Object Dim s1$, s2$, s3$ Set regex = CreateObject("VBScript.RegExp") regex.Pattern = "(.*?)[((](\d{4})[))](.*?)" '全角カッコもあるものとしました s1 = "aaa(2023)" s2 = "aaa(2023)bbb" s3 = "(2023)aaa" Debug.Assert regex.Replace(s1, "$2 $1$3") = "2023 aaa" Debug.Assert regex.Replace(s2, "$2 $1$3") = "2023 aaabbb" Debug.Assert regex.Replace(s3, "$2 $1$3") = "2023 aaa" MsgBox "OK" End Sub # 気づいていないレアケースがあったら失礼。 |
![]() |
投稿日時: 23/08/13 09:51:21
投稿者: Nubo
|
---|---|
アドバイスありがとうございます。
|
![]() |
投稿日時: 23/08/13 14:39:55
投稿者: simple
|
---|---|
(1)
|
![]() |
投稿日時: 23/08/13 15:41:05
投稿者: Nubo
|
---|---|
URLの提供ありがとうございます。
|
![]() |
投稿日時: 23/08/13 15:45:28
投稿者: Nubo
|
---|---|
リンクは下記で繋がるようです。
|
![]() |
投稿日時: 23/08/13 18:17:03
投稿者: simple
|
---|---|
コメントありがとうございます。
|
![]() |
投稿日時: 23/08/14 06:50:40
投稿者: Nubo
|
---|---|
>私の示したURLは、コピーペイスト(テキストエディタ経由も可)すれば、きちんと繋がるものです。
|
![]() |
投稿日時: 23/08/14 11:04:43
投稿者: hatena
|
---|---|
Chromeで試してみましたが、
https://learn.microsoft.com/ja-jp/previous-versions/windows/scripting/cc392149(v=msdn.10) の最後の()部分までコピーしてブラウザのURL欄に貼り付けたら、普通につながりました。 |
![]() |
投稿日時: 23/08/14 12:34:48
投稿者: simple
|
---|---|
hatenaさん、どうもありがとうございました。
|
![]() |
投稿日時: 23/08/14 13:15:40
投稿者: Nubo
|
---|---|
hatenaさん、試していただきありがとうございます。
|
![]() |
投稿日時: 23/08/15 11:25:04
投稿者: Nubo
|
---|---|
simple さんの引用: |