Page 890 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼JPEGファイルの名前の変更 chihiro 03/3/17(月) 18:00 ┣Re:JPEGファイルの名前の変更 てと 03/3/17(月) 18:48 ┣Re:JPEGファイルの名前の変更 てと 03/3/17(月) 19:12 ┗VBSで こう 03/3/17(月) 20:22 ┗できました p-o-q chihiro 03/3/18(火) 10:53 ┗おせっかい こう 03/3/18(火) 12:28 ─────────────────────────────────────── ■題名 : JPEGファイルの名前の変更 ■名前 : chihiro ■日付 : 03/3/17(月) 18:00 -------------------------------------------------------------------------
はじめまして いい案があれば教えて欲しいのですが JPEGファイルが1000個あります 名前がバラバラなので 連番の名前を付けたいのです VBAを使用して JPEGファイルの名前の変更はできるでしょうか? お願いします |
▼chihiro さん: >はじめまして >いい案があれば教えて欲しいのですが > >JPEGファイルが1000個あります >名前がバラバラなので 連番の名前を付けたいのです >VBAを使用して JPEGファイルの名前の変更はできるでしょうか? > >お願いします VBAのHELP(OfficeXPです)に以下の記述がありますので、確認してみてください。 Name ステートメントの使用例 次の例は、Name ステートメントを使って、ファイルの名前を変更します。この例では、指定するフォルダは既に存在するものと仮定します。Macintosh の場合、既定のドライブ名は “HD:” で、パスの区切り文字には円記号 ("\") ではなく、コロン (":") を使用してフォルダを指定します。 Dim OldName, NewName OldName = "OLDFILE": NewName = "NEWFILE" ' ファイル名を定義します。 Name OldName As NewName ' ファイル名を変更します。 OldName = "C:\MYDIR\OLDFILE": NewName = "C:\YOURDIR\NEWFILE" Name OldName As NewName ' ファイルの移動と名前の変更を行います。 |
▼chihiro さん: >はじめまして >いい案があれば教えて欲しいのですが > >JPEGファイルが1000個あります >名前がバラバラなので 連番の名前を付けたいのです >VBAを使用して JPEGファイルの名前の変更はできるでしょうか? > >お願いします 先ほどの続きです。 1000個のファイル名をExcelのシート上に一覧表のようにして取り込んでおきます。 この時、ファイルのパス名も一緒に取得します。 以下のプログラムを実行して見てください。 ファイルを開くダイアログボックスが表示されたら、JPEGファイルが保存してあるフォルダを開いて、1つだけJPEGファイルを選択して「開く」ボタンをクリックします。 一覧表が作成されます。 Sub 一覧表作成() Call FileNameList(fncGetFilePath) End Sub Sub FileNameList(PathName) Set fs = Application.FileSearch With fs .LookIn = PathName .FileName = "*.jpg" If .Execute > 0 Then MsgBox .FoundFiles.Count & " 個のファイルが見つかりました。" For i = 1 To .FoundFiles.Count Range("A1").Offset(i, 0) = .FoundFiles(i) Next i Else MsgBox "ファイルは見つかりませんでした。" End If End With End Sub Function fncGetFilePath() As String Dim lngCount As Long ' ファイル ダイアログを開きます。 With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = True .Show ' 選択された各ファイルのパスを表示します。 For lngCount = 1 To .SelectedItems.Count fncGetFilePath = fncCutFileName(.SelectedItems(lngCount)) Next lngCount End With End Function Public Function fncGetFileName(PathName As String) As String Dim i As Integer For i = Len(PathName) To 1 Step -1 If Mid(PathName, i, 1) = "\" Then Exit For End If Next i If i = 1 Then fncGetFileName = "" Else fncGetFileName = Right(PathName, Len(PathName) - i) End If End Function 次は、A列をB列にコピーします。 B列のファイル名部分を連番のファイル名に変更します。 最後に先ほどのHELPの説明のとおりNAMEステートメントを実行するようなロジックを実行すれば出来上がりです。 |
▼chihiroさん、てとさん こんにちわ。 >JPEGファイルが1000個あります >名前がバラバラなので 連番の名前を付けたいのです >VBAを使用して JPEGファイルの名前の変更はできるでしょうか? VBScriptですが... 以下のコードを「ファイル名:test01.vbs」で保存してください。 Set objFS = WScript.CreateObject("Scripting.FileSystemObject") Set f = objFS.GetFolder(".") j=0 For Each fff In f.Files j = j + 1 '新ファイル名:「FILE+0001.jpg」 NewName = "FILE" & Right( String(4, "0") & j,4) & ".jpg" '[暫定]自分自身は移動しない if fff.name <> "test01.vbs" then 'WScript.Echo(fff.name & "→" & NewName) objFS.GetFile(fff.name).move(NewName) end if Next でもって,jpgファイルが格納されたフォルダに保存し,test01.vbsを 実行(ダブルクリック)してください。 フォルダ内の全ファイル名が「FILE+4桁連番.jpg」に変更されます。 いろいろ未実装の機能がありますが、まずはここまで。 |
てとさん こうさん おはようございます てとさんのサンプルプログラムをヒントに作成しました デスクトップの「画像」フォルダに画像が入っているとして Sub test() Dim i As Integer, strFilePath1 As String, strFilePath2 As String strFilePath1 = "C:\WINDOWS\デスクトップ\画像" With Application.FileSearch .LookIn = strFilePath1 .FileName = "*.jpg" .Execute For i = 1 To .FoundFiles.Count strFilePath2 = .FoundFiles(i) If i < 10 Then Name strFilePath2 As strFilePath1 & "\000" & i & ".jpg" ElseIf i < 100 Then Name strFilePath2 As strFilePath1 & "\00" & i & ".jpg" ElseIf i < 1000 Then Name strFilePath2 As strFilePath1 & "\0" & i & ".jpg" Else Name strFilePath2 As strFilePath1 & "\" & i & ".jpg" End If Next i End With End Sub てな 感じで動きました どうも ありがとうございました |
chihiro さん、こんにちわ。 採用されなかったんですね...(号泣) というのは冗談ですが、ファイル名称の設定はもっとシンプルにできます。 >Sub test() > Dim i As Integer, strFilePath1 As String, strFilePath2 As String > strFilePath1 = "C:\WINDOWS\デスクトップ\画像" > With Application.FileSearch > .LookIn = strFilePath1 > .FileName = "*.jpg" > .Execute > For i = 1 To .FoundFiles.Count > strFilePath2 = .FoundFiles(i) Name strFilePath2 As strFilePath1 & "\" & Format(i, "0000") & ".jpg" > Next i > End With >End Sub |