みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセル表にあるファイル名に従い、大量に画像生成

皆さん今晩は。ご存じの方がいらっしゃいましたら助けて下さい。
添付した画像のようなエクセル表があります。
表にはそれぞれ
12345.jpg
12346.jpg
12347.jpg




とファイル名リストがあります。
このファイル名に添って、フォルダ内にある画像をリネームしたいです。

以上宜しくお願い致します。

投稿日時 - 2012-10-17 19:36:18

QNo.7753277

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

マクロを使ってファイル名を書き換えるぐらいは簡単にできます。

でも。
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フォルダを新たに作り,変更後の画像を移動する。

投稿日時 - 2012-10-17 20:11:59

お礼

ありがとうございました。頑張ってみます!

投稿日時 - 2012-10-19 17:50:36

ANo.1

リネームするには、「何を」「何へ」の2つがセットで必要。
例示のデータはどちらですか?

解は、「セットになるファイル名を列挙して、式設定してリネームコマンドバッチファイルを作る」

以下は何がしかの現ファイル名を例示データにリネームするためのもの
1)対になるファイル名を例示のデータに並べる(例示データが列Aなら、列Bに)
2)列Cに式を設定しコピーする。
  データが2行目から並ぶとして、セルC2に式[="rename " & b2 & " a2"]を入力
3)セルC2を囲む線の右下が■になってるのでダブルクリックする。
  これで下まで式が参照する行番号が変わりながらコピーされる。
4)範囲をそのままコピーする。
5)メモ帳を開き、ペーストする。
6)リネームしたいフォルダに保存する。ファイル名は "リネーム.bat"とする。
  このときファイル名をダブルクォートで囲むこと。
7)コマンドプロンプトを開き、対象のフォルダに移動する。
  cd と半角スペース1文字を入力して、対象のフォルダをドラック&ドロップすると簡単。
  Enterを押すこと。
8)リネーム.bat[Enter]で実行されます。

投稿日時 - 2012-10-17 20:03:13

お礼

ありがとうございました。頑張ってみます!

投稿日時 - 2012-10-19 17:50:57

あなたにオススメの質問