エクセル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にコピーしたいのですが・・。
こんな事出来ますでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (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

この回答への補足

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

補足日時:2001/11/23 13:36
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/11/23 19:38

>・・・(つまり一回目に検索されたファイル)はコピーせず・・・


については、

  If schNum(inpNo) <> 1 Then
    '1回目でなければファイルをコピー
    FileCopy SrcFile, DesFile
  End If

とすれば大丈夫でしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/11/23 19:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QA列の指定した位置にB,C列の文字を置換させる方法

お世話になります。
Excel2003で、A列の指定した位置にB,C列の文字を置換させる機能はありますか。
例 *にB列の文字を、¥にC列の文字を置換。
A   |B |C
1 (*)\(z)| あ| 2
2 (*)\(z)| 3 | 4
    ↓
1 (あ)2(z)|あ | 2
2 (3)4(z) | 3 | 4

よろしくお願いいたします。

Aベストアンサー

セルD1に数式で表示させるのなら

=SUBSTITUTE(SUBSTITUTE(A1,"*",B1,1),"z",C1,1)

で出来ますが、如何でしょうか。

QA列の指定した位置にB,C列の文字を置換させる方法 2

お世話になります。
昨日以下のような質問をさせていただきました。

***********
Excel2003で、A列の指定した位置にB,C列の文字を置換させる機能はありますか。
例 *にB列の文字を、¥にC列の文字を置換。
A   |B |C
1 (*)\(z)| あ| 2
2 (*)\(z)| 3 | 4
    ↓
1 (あ)2(z)|あ | 2
2 (3)4(z) | 3 | 4

************
そして回答をいただき、そのうちの一つ「セルD1に数式で表示させるのなら
=SUBSTITUTE(SUBSTITUTE(A1,"*",B1,1),"z",C1,1) 」を使わせていただきました。

この関数を用い、60行ほどある置換作業を短時間で終えることが出来喜んでいたのですが、その何時間か後に別ファイルで同じ作業を試みたのです。しかし今度は上手くいきませんでした。
一行目は難なく置換できたのですが、前回上手くいったやり方と同じ作業をしているのに、2行目以降の置換結果が1行目と同じになってしまいます。

こちらの過去ログやGoogleで調べましたが、自分でも理解できる解決策を見つけられず再度質問させていただきました。
よろしくお願いいたします。

お世話になります。
昨日以下のような質問をさせていただきました。

***********
Excel2003で、A列の指定した位置にB,C列の文字を置換させる機能はありますか。
例 *にB列の文字を、¥にC列の文字を置換。
A   |B |C
1 (*)\(z)| あ| 2
2 (*)\(z)| 3 | 4
    ↓
1 (あ)2(z)|あ | 2
2 (3)4(z) | 3 | 4

************
そして回答をいただき、そのうちの一つ「セルD1に数式で表示させるのなら
=SUBSTITUTE(SUBSTITUTE(A1,"*",B1,1),"z",C1,1) 」を使わせていただきました。

この関数を用い...続きを読む

Aベストアンサー

#2-4です。

> また、=SUBSTITUTE(SUBSTITUTE(A2,"*",B2,1),"¥",C2,1)
> このABC右の数値は手作業で替えなければならないのでしょうか。

いいえ。D1に最初の式があるなら、D1セルの右下の角にカーソルを合わせると、+マークがでます。そこでクリックしたままで下まで下げると、式は自動的にコピーされ、ABC右の数値も自動で増えていきます。

Q例えばA1に入力した文字列や数字をB1に移動する方法はどうすればよいで

例えばA1に入力した文字列や数字をB1に移動する方法はどうすればよいでしょうか?
色々検索したのですが見つかりませんでした。

本当に行いたいことはウェブページで以下のような文字列があるとします。


山田太郎[ヤマダタロウ]
〒000-0001
東京都千代田区
TEL:0000-00-0000


この文字列をドラックで文字列としてコピーしてエクセルのA5に貼り付けると
通常なら
A5に山田太郎[ヤマダタロウ]
A6に〒000-0001
A7に東京都千代田区
A8にTEL:0000-00-0000

になりますが

A1に山田太郎
B1に000-0001
C1に東京都千代田区
D1に0000-00-0000

に移動されるようにしたいです。
これは[ヤマダタロウ]の文字列、〒、TEL:、のカットを行ったうえで移動させる必要があります。
何か方法があれば教えていただけると幸いです。

Aベストアンサー

おそらくできないと思いますが、面倒ですが次のやり方で回避はできないでしょうか。
一旦任意のセルへ貼付ける。
次にその貼り付けたデータをコピー、貼り付けたいセルを指定して「形式を選択して貼付け」→一番下の「行列を入れ替える」にチェックをいれ、OK。でいかかでしょうか。

Q以下のような場合に B10 に C列に完了日が入力されている行のみのA

以下のような場合に B10 に C列に完了日が入力されている行のみのA列のページ数の合計
をB10に出力させたいのですが、

B10に 
=SUM(IF(A10=C2:C4,A2:A4,0))
を入力しても#VALUE!となってしまいます。

どのようにすれば出力させることが出来るのか教えて頂ければ幸いです。

  |   A   |  B | C
1 | ページ数 | 予定  | 完了
2 | 10   | 10/20 | 10/20
3 | 20   | 10/20 | 10/20
4 | 15   | 10/21 |



9 | 予定   | 消化     
10|10/20   | 30
11|10/21
12|10/21

Aベストアンサー

B10のセルに次の式を入力して下方にオートフィルドラッグします。

=IF(A10="","",SUMIF(C$2:C$8,A10,A$2:A$8))

QSP-1(サービスパックー1)とSR-1は 一緒ですか?

いつも お世話なっています m(_ _)m

質問なのですが Officeなどで UpdateするとSR-1などですが このSRとは 日本語に訳すと どういう意味なのでしょうか?
Windowsなどの SPはサービスパックと わかるのですが SRとは?
同じ意味なのでしょうか?

また Windows xpには 今後もSR-1.exeなどのパッケージは 出ないのでしょうか?

初心者ですので文面が おかしいかもしれませんが よろしくお願いします。

Aベストアンサー

SRとは「サービスリリース」みたいですね。
個人的には...

サービスパック :所謂、バグ回収が起因の修正キット
サービスリリース:純然たる機能拡張キット

        ...って思っていましたが違いますかね?

参考URL:http://www.microsoft.com/japan/office/downloads/


人気Q&Aランキング

おすすめ情報