- 締切済み
エクセル表にあるファイル名に従い、大量に画像生成
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
マクロを使ってファイル名を書き換えるぐらいは簡単にできます。 でも。 1)「どのファイルが」リストのどのファイル名に変わって欲しいのか,対応が不明です。 たとえば 「A列に今あるファイル名が漏れなく列記されている」 「B列にそれぞれの変更後のファイル名が過不足無く列記されている」 のが理想です。 2)ファイルを順不同であるだけ拾ってきて,勝手に上から順に名前を書き換えることも,勿論できます。 用意の変更後ファイル名リストが尽きてしまったら(ファイルの方が数が多かったら)どうしたいのか,だけ決めておく必要はあります。 作成例: ブックのA列に変更後の名前を列記する ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub macro1() dim myPath as string dim myFile as string dim i as long mypath = "c:\test\" ’画像を保存しているフォルダのパスを正しく記入する on error resume next mkdir mypath & "results\" on error goto 0 i = 2 myfile = dir(mypath & "*.jpg") do until myfile = "" name mypath & myfile as mypath & "\results\" & cells(i, "A").value myfile = dir() i = i + 1 if cells(i, "A") = "" then exit do loop end sub 画像フォルダのパスを正しく書き換える (必要に応じて,マクロで処理したいオリジナルファイルの拡張子も修正する) ファイルメニューから終了してエクセルに戻る ALT+F8を押してマクロを実行する。 フォルダにresultsフォルダを新たに作り,変更後の画像を移動する。
- bin-chan
- ベストアンサー率33% (1403/4213)
リネームするには、「何を」「何へ」の2つがセットで必要。 例示のデータはどちらですか? 解は、「セットになるファイル名を列挙して、式設定してリネームコマンドバッチファイルを作る」 以下は何がしかの現ファイル名を例示データにリネームするためのもの 1)対になるファイル名を例示のデータに並べる(例示データが列Aなら、列Bに) 2)列Cに式を設定しコピーする。 データが2行目から並ぶとして、セルC2に式[="rename " & b2 & " a2"]を入力 3)セルC2を囲む線の右下が■になってるのでダブルクリックする。 これで下まで式が参照する行番号が変わりながらコピーされる。 4)範囲をそのままコピーする。 5)メモ帳を開き、ペーストする。 6)リネームしたいフォルダに保存する。ファイル名は "リネーム.bat"とする。 このときファイル名をダブルクォートで囲むこと。 7)コマンドプロンプトを開き、対象のフォルダに移動する。 cd と半角スペース1文字を入力して、対象のフォルダをドラック&ドロップすると簡単。 Enterを押すこと。 8)リネーム.bat[Enter]で実行されます。
お礼
ありがとうございました。頑張ってみます!
お礼
ありがとうございました。頑張ってみます!