• ベストアンサー

ファイル名変更してコピー

エクセル2000で次のような処理が出来ますでしょうか。 まず前提として、シート1のA列にフォルダAの中の001.jpg~100.jpgと言う画像 がリンク付けてあります。(A1は001.jpgに~A100は100.jpgに)。 そこで、シート1のB列にB1からB***まで数字をガンガン打ち込んでいきます。 打ち込み終わりで、実行すると例えばB1が30だとすると030.jpgを 1-030-001.jpg( (1から連番)-(画像番号)-(検索された回数).jpg ) と言うふうにしてフォルダBにコピーしたいのですが・・。 こんな事出来ますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

こんな感じでしょうか。質問の通りにファイルをコピーするはずです。(Excel2000) コピー先ファイル名の『1から連番』は1~数桁になり、ソートなどには不向きかもしれません。  DesFile = DesFolder & "\" & (rwCot + 1) &・・・・を(質問のまま)  DesFile = DesFolder & "\" & RIGHT("0000" & (rwCot + 1), 4) &・・・にすれば連番が4桁固定になります。 フォルダA、Bは指定してください。 シートのコードウインドウに貼り付けます。 ↓ Dim schNum() As Integer '検索された回数 Sub HyperFileCopy()   Const SrcFolder = "A:\FolderA" 'コピー元のフォルダ *** 指定する ***   Const DesFolder = "A:\FolderB" 'コピー先のフォルダ *** 指定する ***   Const jpgNum = 100 'jpgファイルの個数   ReDim schNum(jpgNum) As Integer '検索された回数   Dim rwCot As Integer 'カウンタ(連番)   Dim inpNo As Integer '入力した数値   Dim SrcFile As String 'コピー元のファイル名   Dim DesFile As String 'コピー先のファイル名   While Range("B1").Offset(rwCot, 0) <> "" 'B列を空白セルになるまで読み込む     inpNo = Range("B1").Offset(rwCot, 0).Value     'コピー元のファイル名     SrcFile = SrcFolder & "\" & Range("A" & inpNo).Value     'コピー先のファイル名     schNum(inpNo) = schNum(inpNo) + 1 '検索された回数を増やす     DesFile = DesFolder & "\" & (rwCot + 1) & "-" & _          Right("000" & inpNo, 3) & "-" & _          Right("000" & schNum(inpNo), 3) & ".jpg"     'ファイルをコピー     FileCopy SrcFile, DesFile     rwCot = rwCot + 1 '次の行   Wend End Sub

kenta1005
質問者

お礼

重ね重ね本当にありがとうございました。 お礼の言葉もございません。 おかげさまでうまく行きました。自分でやってたら 何年かかるか・・と思うと恐いくらいです。

kenta1005
質問者

補足

nishi6さん、本当にありがとうございます。感謝というか感動です。 おかげさまで出来ました。 一つ質問漏れがありまして、変更したファイル名が ****-***-001.jpg となった場合(つまり一回目に検索されたファイル)はコピーせず、 そのまま次の処理を続けることは出来ますか? ファイルをコピーする前に何か一文たせばいいんでしょうか・・?

その他の回答 (1)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

>・・・(つまり一回目に検索されたファイル)はコピーせず・・・ については、   If schNum(inpNo) <> 1 Then     '1回目でなければファイルをコピー     FileCopy SrcFile, DesFile   End If とすれば大丈夫でしょう。

kenta1005
質問者

お礼

下のほうに書いてしまいましたが、 本当にありがとうございました。

関連するQ&A

  • VBAを使ってセル内に記述してある複数ファイル移動を移動

    VBAを用いたファイル移動に関して教えていただきたく 質問させていただきます。 VBAでファイルを移動する方法、*htmlなど特定の拡張子および、指定フォルダ内の全ファイル移動といった方法はわかりましたが、セル内に 記載してあるもののみ移動するだけがわかりませんでした。 やりたいこととしては 事前にjpgというフォルダから 読み込んでおいたjpgファイルのファイル名の一覧が A列、B列、C列に記載されているのですが、それをマクロを実行するとtestというフォルダへ移動するようにしたいのです。 画像をすべて移動するだけなら、別にVBAを使わなくても エクスプローラーで事足りてしまいますが、 画像ファイルがすべて数字で表記されていること jpgファイル名一覧は原本で、実際には、原本のファイル名の一覧から数行だけをコピーして、別のシートを立ち上げ、そのシートに貼り付けられたjpgのファイル名だけを移動したいのです。 ここを参考にするといい!ですとか、あれば、併せて教えていただければ幸いです。よろしくお願いいたします。

  • リンクがあるシートBのコピーをマクロで

    エクセル2010を使用しております。 シートBを営業日が終了したらコピーして別シートCに保存したいのですが リンクして数字をひっぱっているので そのリンク元(シートA)は 営業日が終了した時点で 数字をクリアして 翌営業日に使用しています。 ですので シートBをコピーしても リンク元(シートA)をクリアすると 入力されていた数字も同時に消えてしまうし また あたり前ですが、元のシートAに数字をいれると 違う数字になってしまいます。 そこで 画像としてコピーして保存するか  印刷して データを打ち直すかしか 考えが 浮かびませんが・・・ マクロを使って いい方法はないものでしょうか? シートを新規に作成→シートBの印刷エリアをコピー→シートCに形式を選択して画像として貼り付け →画像を適切な大きさに縮小する。 上の一連の流れをマクロで できるのか?考えてみましたが、 できれば 画像ではなく コピーして新規シートに作成したいんですが 毎日の作業なので頭がいたいです。もっと絶対いい方法があるとおもいますが。 詳しい方、お願いします。

  • ファイルの自動コピー

    たとえば、 フォルダAにA.jpgというファイルを保存した時に、そのA.jpgがフォルダBとフォルダCに自動的にコピーされる、ということは簡単にできませんでしょうか? OS Vista

  • エクセルのシーとコピーで

    シート1に 数値が入っています。 その数値を シート2に コピーするには =シート1!A1の 数式を入れれば シートA1の数値が シート2に入りますが シート1のA列の数値を 等間隔で飛ばして シート2に入れようとして シート2のB列の1に =シート1!A1 シート2のB列の2に =シート1!A10 と 入力して 二つセルを合わせて コピー下にスライドしていけば 等間隔で シートBに 9行空けた間隔のシート1の数字が入ると思ったけれど 無理でした。 どなたか 簡単に シート1の数値を等間隔で飛ばして シートBの縦列にコピー出来る簡単な 方法は無いでしょうか? 宜しくお願いします。

  • 関数を教えて下さい

    A列に数字の連番が1-1000まで入っています。この連番を利用し「1_1.jpg」という文字列を連番の数だけ作りたいです。連番が20なら「20_1.jpg」です。 よろしくおねがいします

  • エクセルのシートから、ファイル検索に関して教えてください。

    エクセルのシートから、ファイル検索に関して教えてください。 ■エクセルの列に下記のような形で画像名が入っています。 a.jpg b.jpg c.jpg ↓ 500行程度 ■ローカルフォルダに1000枚程度 japgの画像が入っています。 以上のような状態で、ローカルフォルダのなかから、エクセルに記載してある 画像だけを取り出したいのですが良い方法はないでしょうか?

  • エクセル2003 表引き

    こんにちは いつもお世話になっています。 エクセル2003を使っています。 Sheet1のA列に連番数字、B列に都道府県名があります。 1 青森 2 秋田 3 岩手 4 愛媛 5 鹿児島 Sheet2のA1にSheet1のB1データを引いてくるために =Sheet1!B1 という関数を入れました。 Sheet2のB1にはSheet1のB2を引いてきたいのですがフィルハンドルでのコピーに失敗します。 どのような関数を使えば横にコピーできるようになるでしょうか。 縦のデータを横にしたいのではなく、関数で引っ張りたいのです。 よろしくお願いします。

  • エクセルのコピーについて

    2つのエクセルファイルがあります。『ファイル1』と『ファイル2』とします。 シートの構成とシートの中の表が同じです。(例:シート名が『A』・『B』の2つとします) 2つファイルともシートBのセルA1に数字の『1』を入力しています。 ファイル1はシートAのセルA1をイコールでシートBのセルA1としています。 そのファイル1のシートAのセルA1をコピーして、ファイル2のシートAのセルA1に貼り付けます。 そうするとファイル2のシートAのセルA1の計算式が   =[ファイル1]B!A1 となります。 これってリンクされており結局ファイル2のシートAのA1はファイル1の数値ってことになりますよね。 これをファイルのリンクではなくてファイル2のシートBのA1とリンクさせるってことできますか。もともと同じファイルをコピーして使っているので中身のシート名とかは一緒なんですよ。 意味わかりますかね?

  • 記載しているファイル名より、画像を抽出したい

    エクセルシートに記載している画像ファイルを、別のフォルダから抽出 する方法を教えてください 今、エクセルシートの A列の1行から1000行に画像のファイル名が記載されています これをtest.xlsxとします ここにはa列に下記のように記載されています ------------------------------------------- a1セルに0000a1.jpg a2セルに0000a2.jpg a3セルにxyz.jpg a4セルにopq.jpg ・ ・ ・ a1000セルにopqrst.jpg ---------------------------------------------- このようなものです そして、別の(例えばgazo)フォルダに、a1~a1000の画像を含んだ、 それ以外の画像も入っているgazouフォルダがあります これを別のフォルダー(gazou_newフォルダー)に 先のエクセルファイルa1~a1000に記載されている 画像を取り込みたいのですが・・・・ どのようにしたらよいでしょうか

  • 説明に自信ありませんが。

    以前質問させていただいた者です、 解答していただいた方ありがとうございました。 さっそく本屋さんで見てみましたが、私が理解するには多少なりとも プログラムに詳しい人がそばいないと難しいと思い、 改めて質問させていただきます。 自分にはプログラムはまだまだ時間がかかるので、以下のような 処理の可能なソフトを探しています。何かありますでしょうか? 画像データを取り扱うもので、以下のような処理をしたいのですが・・。 データベースフォルダA 001.jpg 002.jpg 003.jpg 004.jpg ・・・ 2000.jpg (1) 数字を入力   352 200 212 1555 2 33 525 223 200 33 33 ・・・  (2) 実行   352をキーに352.jpgを検索し 1-00352-001.jpg とファイル名を変更して   データベースフォルダBに。   200をキーに200.jpgを検索し 2-00200-001.jpg とファイル名を変更して   データベースフォルダBに。   212をキーに212.jpgを検索し 3-00212-001.jpg とファイル名を変更して   データベースフォルダBに。   同様に 1555から 4-01555-001.jpg 2から 5-00002-001.jpg        33から 6-00033-001.jpg 525から 7-00525-001.jpg 223から 8-00223-001.jpg そして、同じ番号がキーに なっている場合(次の200の場合) 200.jpgを 9-00200-002.jpgと変更してデータベースフォルダBに。 その次の33は33.jpgを 10-00033-002.jpg  次は 11-00033-003.jpg と言うように、データベースAから (1から連番)-(検索されたファイルの数字)-(そのファイルの検索された回数).jpg と名前を変更したものをデータベースBとして作成したいのですが・・。 (例えば2-00200-001.jpg と 9-00200.002.jpgは同じ画像になります)。 こんなかんじですが、いかがなものでしょう?やはり一般人にこなせるレベルじゃないですか?

専門家に質問してみよう