- ベストアンサー
ファイル名変更してコピー
エクセル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にコピーしたいのですが・・。 こんな事出来ますでしょうか?
- kenta1005
- お礼率73% (71/96)
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでしょうか。質問の通りにファイルをコピーするはずです。(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
その他の回答 (1)
- nishi6
- ベストアンサー率67% (869/1280)
>・・・(つまり一回目に検索されたファイル)はコピーせず・・・ については、 If schNum(inpNo) <> 1 Then '1回目でなければファイルをコピー FileCopy SrcFile, DesFile End If とすれば大丈夫でしょう。
お礼
下のほうに書いてしまいましたが、 本当にありがとうございました。
関連するQ&A
- VBAを使ってセル内に記述してある複数ファイル移動を移動
VBAを用いたファイル移動に関して教えていただきたく 質問させていただきます。 VBAでファイルを移動する方法、*htmlなど特定の拡張子および、指定フォルダ内の全ファイル移動といった方法はわかりましたが、セル内に 記載してあるもののみ移動するだけがわかりませんでした。 やりたいこととしては 事前にjpgというフォルダから 読み込んでおいたjpgファイルのファイル名の一覧が A列、B列、C列に記載されているのですが、それをマクロを実行するとtestというフォルダへ移動するようにしたいのです。 画像をすべて移動するだけなら、別にVBAを使わなくても エクスプローラーで事足りてしまいますが、 画像ファイルがすべて数字で表記されていること jpgファイル名一覧は原本で、実際には、原本のファイル名の一覧から数行だけをコピーして、別のシートを立ち上げ、そのシートに貼り付けられたjpgのファイル名だけを移動したいのです。 ここを参考にするといい!ですとか、あれば、併せて教えていただければ幸いです。よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- リンクがあるシートBのコピーをマクロで
エクセル2010を使用しております。 シートBを営業日が終了したらコピーして別シートCに保存したいのですが リンクして数字をひっぱっているので そのリンク元(シートA)は 営業日が終了した時点で 数字をクリアして 翌営業日に使用しています。 ですので シートBをコピーしても リンク元(シートA)をクリアすると 入力されていた数字も同時に消えてしまうし また あたり前ですが、元のシートAに数字をいれると 違う数字になってしまいます。 そこで 画像としてコピーして保存するか 印刷して データを打ち直すかしか 考えが 浮かびませんが・・・ マクロを使って いい方法はないものでしょうか? シートを新規に作成→シートBの印刷エリアをコピー→シートCに形式を選択して画像として貼り付け →画像を適切な大きさに縮小する。 上の一連の流れをマクロで できるのか?考えてみましたが、 できれば 画像ではなく コピーして新規シートに作成したいんですが 毎日の作業なので頭がいたいです。もっと絶対いい方法があるとおもいますが。 詳しい方、お願いします。
- ベストアンサー
- その他MS Office製品
- ファイルの自動コピー
たとえば、 フォルダAにA.jpgというファイルを保存した時に、そのA.jpgがフォルダBとフォルダCに自動的にコピーされる、ということは簡単にできませんでしょうか? OS Vista
- 締切済み
- その他(ITシステム運用・管理)
- エクセルのシーとコピーで
シート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」です。 よろしくおねがいします
- ベストアンサー
- Excel(エクセル)
- エクセルのシートから、ファイル検索に関して教えてください。
エクセルのシートから、ファイル検索に関して教えてください。 ■エクセルの列に下記のような形で画像名が入っています。 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とリンクさせるってことできますか。もともと同じファイルをコピーして使っているので中身のシート名とかは一緒なんですよ。 意味わかりますかね?
- ベストアンサー
- その他MS Office製品
- 記載しているファイル名より、画像を抽出したい
エクセルシートに記載している画像ファイルを、別のフォルダから抽出 する方法を教えてください 今、エクセルシートの 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は同じ画像になります)。 こんなかんじですが、いかがなものでしょう?やはり一般人にこなせるレベルじゃないですか?
- ベストアンサー
- Visual Basic
お礼
重ね重ね本当にありがとうございました。 お礼の言葉もございません。 おかげさまでうまく行きました。自分でやってたら 何年かかるか・・と思うと恐いくらいです。
補足
nishi6さん、本当にありがとうございます。感謝というか感動です。 おかげさまで出来ました。 一つ質問漏れがありまして、変更したファイル名が ****-***-001.jpg となった場合(つまり一回目に検索されたファイル)はコピーせず、 そのまま次の処理を続けることは出来ますか? ファイルをコピーする前に何か一文たせばいいんでしょうか・・?