ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3909771 エクセルファイルを別名でたくさん作る方法
質問者:takao1004  エクセルファイルでの質問です。
現在「A-1」と言う名前のエクセルファイルが有ります。
これをコピーして「A-2」と言うファイルを作ります。
最終的に列が1から10まであり、行がA〜Pまであります。
ファイル数は全部で約160個になります。
1個1個名前を変えてコピーしていたのでは時間が掛かるので、BATファイルを作ってコピーできればと思っています。
しかし、やり方が分からなくて困っています。
教えて下さい。
よろしくお願い申し上げます。
困り度:
  • すぐに回答を!
質問投稿日時:
08/03/31 12:17
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.3 エクセルVBAなら簡単です。
ファイルのある場所を「C:\Documents and Settings\User\デスクトップ」とすると下記のとおり、適当にファイルのある場所を変更して下さい。最後に「\」を忘れずに。実行すれば、ファイルは2秒位でできます。
'
Sub xxx()
fil = "C:\Documents and Settings\User\デスクトップ\"
For j = 1 To 10
For i = 1 To 16
If i = 1 And j = 1 Then GoTo s1
FileCopy fil & "A-1.xls", fil & Chr(64 + i) & "-" & j & ".xls"
s1:
Next i
Next j
End Sub
回答者:suz83238
種類:回答
どんな人:一般人
自信:自信あり
回答日時:
08/03/31 13:24
この回答への補足簡単にできました。

ありがとうございました。

ちなみに、これを応用して、セルからの操作はできますか?

たとえばA1セルにファイルの場所
A2にファイル名の最初の記号。ここでは「A」
A3にファイル名の後の記号。ここでは「1」
として、ボタンを配置後クリックで作れるようにできませんか?

よろしくお願い申し上げます。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.2 No.1 です。
先ほどの for 文がついた計11行を、
エディタなどに並べて CR まで含めてコピーし
右クリック→[貼り付け]で
コマンドラインに11行のコマンドラインを貼り付けて
全部実行してくれました。

全部並べて書いておけばよかったです。
回答者:kfd03077
種類:回答
どんな人:経験者
自信:自信あり
回答日時:
08/03/31 12:45
この回答への補足 ご返信ありがとうございます。

大変申し訳ありませんが、もう少し砕いて頂けませんでしょうか?

こちら、拡張子をBatに変える事くらいしか知識がありません。
申し訳ありませんがよろしくお願い申し上げます。
この回答へのお礼出来ました。ありがとうございました。

回答

ANo.1 コマンドラインだけでもできます。

まず、「ファイル名を指定して実行」で
cmd
と入力し、コマンドプロンプトのウィンドウを開いてください。
次に、カレントフォルダ(今注目するフォルダ)を、
今A-1.xls ファイルがある場所に変更してください。
そして
for %a in (2 3 4 5 6 7 8 9 10) do copy A-1.xls A-%a.*
でA-2〜A-10.xls を作ります。これくらいは手操作でもいいかも。

次に
for %a in (B C D E F G H I J K L M N O P)do copy A-1.XLS %a*.*
for %a in (B C D E F G H I J K L M N O P)do copy A-2.XLS %a*.*
for %a in (B C D E F G H I J K L M N O P)do copy A-3.XLS %a*.*
for %a in (B C D E F G H I J K L M N O P)do copy A-4.XLS %a*.*
for %a in (B C D E F G H I J K L M N O P)do copy A-5.XLS %a*.*
for %a in (B C D E F G H I J K L M N O P)do copy A-6.XLS %a*.*
for %a in (B C D E F G H I J K L M N O P)do copy A-7.XLS %a*.*
for %a in (B C D E F G H I J K L M N O P)do copy A-8.XLS %a*.*
for %a in (B C D E F G H I J K L M N O P)do copy A-9.XLS %a*.*
for %a in (B C D E F G H I J K L M N O P)do copy A-10.XLS %a*.*
でOKです。が、

これらをコマンドラインにコピペしてもOKです。

殆ど同じコマンドを、コマンドプロンプト上で少しの操作で手を加える方法もあるのですが
ここでは省略します。
回答者:kfd03077
種類:回答
どんな人:経験者
自信:自信あり
回答日時:
08/03/31 12:41
この回答へのお礼この回答にお礼をつける(質問者のみ)