すいません勘違いしていました。
EXCELを利用した相談だと勘違いしてマクロで回答しましたが
必要なければ忘れて下さい。
最後に仮セルを使用したマクロだったのを
仮セルを作らずに変数(配列)で処理してみました。
(シートを3つ作らずに1つのシートにしてA2セルから
旧ファイル名とヘッダー部分を隣合わせたセル入れる方式にしています。)
Sub test2()
Dim i As Long
Dim ws1 As Worksheet
Dim LastRow As Long
Dim NewName() As Variant
Dim Header1() As Variant, Header2() As Variant
Set ws1 = Worksheets("変更前") '処理すべきファイル名(旧ファイル名)のあるシート名
'処理行はいくつ?
LastRow = ws1.Range("A" & Rows.Count).End(xlUp).Row
ReDim NewName(2 To LastRow)
ReDim Header1(2 To LastRow)
ReDim Header2(2 To LastRow)
For i = 2 To LastRow
NewName(i) = Left(ws1.Cells(i, 1), 10) & ".xls" '変名前のファイル名から後半の不用部を削除したファイル名候補
Header1(i) = "【" & ws1.Cells(i, 2) & "】" 'ヘッダー1に【】を追加する
Header2(i) = "【" & ws1.Cells(i, 3) & "】" 'ヘッダー2に【】を追加する
Next
Dim Path As String
Dim OldFileName() As Variant
Dim NewFileName() As Variant
ReDim OldFileName(2 To LastRow)
ReDim NewFileName(2 To LastRow)
Path = "C:\Users\Nubo\Desktop\" 'Path先は環境に合わせて変更の事
For i = 2 To LastRow
NewName(i) = Header1(i) & Header2(i) & NewName(i) '変名後の新ファイル名(ヘッダー1,2+ファイル名候補)
OldFileName(i) = Path & ws1.Cells(i, 1) '旧ファイル名のフルパス
NewFileName(i) = Path & NewName(i) '変名後の新ファイル名のフルパス
Name OldFileName(i) As NewFileName(i) '変名処理
Next
End Sub
質問者からの補足(2022/06/14 20:01)を受けてコードを見直しました。
ファイルが存在するパスは、環境に合わせて変更して下さい。
Option Explicit
Sub test2()
Dim i As Long
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Dim LastRow As Long
Set ws1 = Worksheets("変更前")
Set ws2 = Worksheets("参照DATA")
Set ws3 = Worksheets("変更後")
LastRow = ws1.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To LastRow
ws1.Cells(i, 2).Value = Left(ws1.Cells(i, 1), 10) & ".xls"
ws2.Cells(i, 3) = "【" & ws2.Cells(i, 1) & "】"
ws2.Cells(i, 4) = "【" & ws2.Cells(i, 2) & "】"
Next
Dim Path As String
Dim OldFileName As String
Dim NewFileName As String
Path = "C:\Users\User\Desktop\" 'Path先は環境に合わせて変更の事
For i = 2 To LastRow
ws3.Cells(i, 1) = ws2.Cells(i, 3) & ws2.Cells(i, 4) & ws1.Cells(i, 2)
OldFileName = Path & ws1.Cells(i, 1).Value
NewFileName = Path & ws3.Cells(i, 1).Value
Name OldFileName As NewFileName
Next
End Sub
sampleコードです。
環境に合わせて変更ください。
(ヘッダーのファイル名は、1セルに入っていると仮定しています。)
Option Explicit
Sub test()
Dim i As Long
Dim tmp As Variant
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Dim LastRow As Long
Set ws1 = Worksheets("変更前")
Set ws2 = Worksheets("参照DATA")
Set ws3 = Worksheets("変更後")
LastRow = ws1.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To LastRow
tmp = Split(ws2.Cells(i, 1), " ")
ws2.Cells(i, 2) = "【" & tmp(0) & "】"
ws2.Cells(i, 3) = "【" & tmp(1) & "】"
Next
Dim fso As Object
Dim filePath As String
Dim newFileName As String
Set fso = CreateObject("Scripting.FileSystemObject")
For i = 2 To LastRow
ws3.Cells(i, 2) = ws2.Cells(i, 2) & ws2.Cells(i, 3) & ws1.Cells(i, 1)
filePath = "C:\Users\user\Desktop\" & ws1.Cells(i, 2).Value
newFileName = ws3.Cells(i, 1).Value
fso.GetFile(filePath).Name = newFileName
Next
Set fso = Nothing
End Sub
お礼
回答ありがとうございます。 スラスラ必要なコマンドとかエクセルとかを上手に使うと早いぞとかがパッパパと浮かべばもっと速くできたり 一発でVBAのコードかければ瞬間で終わるかもしれませんが、 これをやってくださいと仕事の指示がでると 例えば、1時間とか2時間以内とかそいう制限があって 効率的なやり方を調べて、見つかる場合はいいですが 見つからないとすると調べてましたという 報告になってしまい、作業目的を履行できなくなってしまう。 塩梅がむずかしいですが、ある程度パワープレイも必要ですね(*´ω`*)