• ベストアンサー

【Excel VBA】ファイル名の指定

Excel2003を使用しています。 C:\Book1 をコピーして貼り付ける場所を A: にするときに、貼り付け先のBook名を変更したく、そのBook名はその都度指定したいのですが、例えば、InputBox に入力した名前で貼り付ける等できるでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • x0000x
  • ベストアンサー率52% (67/127)
回答No.2

以下で処理できます。 Sub CopyBook() Dim path As String path = "C:\" Dim DestFileName As String DestFileName = InputBox("コピー先ファイル名を入力すること。", "ファイル名入力") FileCopy path & "Book1.xls", path & DestFileName End Sub ※ ただし、Book1.xlsがOPENされている場合は失敗します。 Open中ファイルを対象にするならFileSystemObject オブジェクトのCopyFileメソッドで可能かと。

rx-z5815
質問者

お礼

おはようございます。 おかげさまで、無事処理できました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • x0000x
  • ベストアンサー率52% (67/127)
回答No.3

#2です。 COPY先は”A:”でしたね。 FileCopy path & "Book1.xls", path & DestFileName    ↓ FileCopy path & "Book1.xls", "A:\" & DestFileName としてください。

全文を見る
すると、全ての回答が全文表示されます。
  • pamsd
  • ベストアンサー率18% (39/209)
回答No.1

補足要求です。 VBAは、どのように記述していますか? または、する予定ですか?

rx-z5815
質問者

補足

>VBAは、どのように記述していますか? >または、する予定ですか? コピー元のBookにはコードを記述できないので、貼り付ける側(A:)にコードを記述するためのBookを別に作り、そのBookを開くことで、マクロを実行するようにしようかと考えています。 個人用マクロブックに保存しようかとも思いましたが、他でこのマクロを使用することはないので…。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【Excel VBA】データ貼り付け先のシート名選択

    Excel2003を使用しています。 あるシートの選択部分を別のシートに値のみコピーするという作業をマクロで処理したく、コードを書きました。 コピー元のシートは毎回同じなのですが、貼り付け先のシートは、都度選択するようにしたいので、InputBox にシート名を入力して選択する方法にしていますが、これをシート名リストから選択するようにすることは可能でしょうか? 可能であれば、その方法を教えていただきたいのですが。。。 よろしくお願いします。

  • Excel VBA別ブックのシートをコピーするには

    Excel2010のVBAで別ブックのシートをコピーしてくる方法 Excelファイル(C:\test\BOOK2.xls)のシート名が TESTというシートを自分のExcelファイル(C:\doc\BOOK1.xls)に コピーするにはどのように記述すればよいのでしょうか。 ・コピー先:自分のExcelファイル(C:\doc\BOOK1.xls)  VBAのコードがあるファイルです ・コピー元:C:\test\BOOK2.xlsのTESTシート  なお、TESTシートを持つ同じ名前(BOOK2.xls)のファイルが  別フォルダにもあります   Workbooks( )の引数にファイル名(BOOK2.xls)は指定できるのですが、 フルパス名(C:\test\BOOK2.xls)で指定できないので困っています。

  • VBAの構文を教えてください。

    エクセルVBAについて教えてください。 現在、Excelデータを使って注文書の管理をしています。 1.注文書という名前のフォルダ  (1)注文No.の名前でBOOK名を付け、注文をした詳細Excelデータを作成。※No.ごとの名前でExcelデータBOOKを作成しています。なのでかなりのBOOK数があります。  (2) (1)で作成したデータはかなりのBOOK数なので、「注文書インデックス」という名前のExcelデータBOOKをつくり、注文したNo.順で一覧表に簡易詳細を入力したデータを入力。一覧のNo.と一致するBOOKにハイパーリンクを貼り付けてダブルクリックするとそのNo.のBOOKを開けるという作業を行っています。 ハイパーリンク貼り付けをやめて、VBAで行うにはどのような構文になるのでしょうか? VBAの知識をお持ちの方!教えてください。お願いします。

  • エクセルマクロ コピー元と貼り付け先を指定してコピー&ペーストを実行するマクロ

    単刀直入にやりたいことを述べます。 Cドライブと仮定します。3つのBOOKがあります。 それぞれ ----- BOOK1.xls「○○Sheet」・・・(実行するファイル)   A 1 BOOK2.xls「△△Sheet」・・・(コピーするファイル名の指定です) 2 A2:E2・・・(コピーするセル範囲の指定) 3 BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル名の指定です) 4 A5・・・(貼り付け先のセルの指定) ----- BOOK2.xls「△△Sheet」・・・(コピー元ファイル)   ABCDE 1 あいうえお 2 かきくけこ 3 ・・・・・ ----- BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル)   ABCDE 1 ・・・・・ 2 かきくけこ・・・(貼り付け) 3 ・・・・・ ----- >やりたいこと BOOK1.xls「○○Sheet」のA1のセルの値とA2セルの値を参照し、 その該当BOOKのセル範囲(BOOK2.xls「△△Sheet」のA2:E2)をコピーして、 BOOK1.xls「○○Sheet」のA3のセルの値と、A4セルの値を参照し、 その該当BOOKのセル範囲(BOOK3.xls「□□Sheet」のA5)へペーストする。 別のブックの指定したセルの値を別のブックの指定したセルへ貼り付けるだけなんですが、 以前関数を使って似たような事をしようとしたのですが、うまくいかなかったので、マクロならできるのでしょうか。 よろしくお願いします。(ちなみにエクセル2000又は2003です)

  • Excel2007でBOOK間のシート移動をVBAで行うとエラーになる

    Excel VBAで開発されたソフトの改造を行ってますが、Excel2007で動作しないマクロがあり困ってます。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Excel2007 SP1 (Microsoft Office2007) 改造元ソフトはOffice2000で開発されており、Excel2007で動作するとマクロエラーが発生する処理があります。 因みにまだソフト改造はしてなく、そのままExcel2007で動作させるだけでマクロエラーが発生します。 発生する箇所はVBAで開発されており、下記のコマンドです。 Sheets(移動元シート名).Move Before:=Application.Workbooks(移動先ブック名).Sheets(1) 異常の内容は下記になります。 ------------------------------- ?err.Description 移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。 ?err.Number 1004 ------------------------------- 移動元BOOKは1シート、移動先BOOKは1シートあります。 これをExcel2000で実行すると正常にシートが移動できます。 (移動元BOOKのシートがなくなりBOOKが終了して、移動先BOOKは2シートになります) Excel画面の移動元シートを選択して、右クリックメニューの「移動またはコピー」で移動先ブックを指定して移動すると 「移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。」 とVBAから実行した時と同じ内容のエラーダイアログが表示されました。 (Excel2000では手動でも移動できました) Excel2007では1シートで構成されたBOOK間の移動はできないのでしょうか? また、これをVBAで対策しようとした場合にどうしたら良いのでしょうか? ネットで調べましたが判らず、ここで質問させて頂きました。 判りにくい説明で申し訳ありませんが、よろしくお願いします。

  • 【Excel VBA】指定されたシートに該当のデータをコピーする

    Excel2003を使用しています。 あるセルに入力されている値と同じ名前のシートに、そのセルと同行のデータをコピーするというマクロを作成したいのですが。。。 例えば、Sheet1のC4セルに「1234」(文字列です)と入力されていたら、「1234」シートに、Sheet1のC4セルと同行のデータを貼り付け、Sheet1のC5セルに「1235」と入力されていたら、「1235」シートに、Sheet1のC5セルと同行のデータを貼り付け…といった感じで、Sheet1のC列(C4セル以下)に入力されている値を元に、それぞれのシートへ順番にデータをコピーしたいのです。 うまく表現できなくて、わかりづらいと思いますが、都度補足させていただきますので、よろしくお願いします。

  • Excel2000 VBAで新規シート名を他のシート名と重ならないようにつけるには?

    始めまして。早速ですが、今頭を抱え込んでいる私の悩みを聞いて下さい。 シート名を追加するプログラムで、「シートを追加」というボタンを押すと、 Inputboxを表示し、そこに任意の番号("見積書1"や"請求書1"の数字部分)を入力して、その番号をシート名として取得すると同時に、シートを追加するようにしたいのです。 その過程で、新しいシートの名前をつける際に、同じブック内に既に存在する複数 のシート名と照らし合わせて、もし、既存の番号と同じ番号をInputBoxに入れたときには、「他の番号を入力してください」と再度InputBoxを表示させたいのです。 そして、シート名がブック内に同じものがない場合にのみ、シートを追加するというものです。 VBAを使うより、手動ですれば?という考えももちろん解決方法の一つかとは思いますが、何分Excelを始めて使う年老いた父のために、少しでも簡単に操作できるようにという思いから質問させて頂いております。 どうぞよろしくお願いいたします。

  • Excel2003 マクロでブックを開かずにコピペ

    Excel2003でC:\にあるブックBを開かずに、 開いているブックAの指定したセルをコピーしたいのですがうまくいきません。 具体的なイメージは 開いているコピー先のブックA:いろは.xls コピー先のシート:Sheet1 コピー元のブックB:らりるれろ.xls コピー元のシート:らりるれろ (ブックBの名前(らりるれろ.xls)とシート名が同じなのはシステム上の仕様です。) ブックBのC6をブックAのC5に、 ブックBのI6をブックAのC6に、 ブックBのK6をブックAのC7に、 ブックBのH6をブックAのC8にコピーしたいと考えています。 宜しくお願いします!

  • エクセル マクロを使って指定範囲のデータを別のブックの特定のシートにコ

    エクセル マクロを使って指定範囲のデータを別のブックの特定のシートにコピーしたい。 Book1のsheet1内のA1:C5を A B C 1 東京 1月 2 1/1 りんご 50 3 1/2 みかん 70 4 1/3 バナナ 50 5 1/5 イチゴ 60 A1でコピー先のBook名を指定 B1でコピー先のSheet名を指定 東京(Book名)の1月(Sheet名)のA2:C6にコピーしたい。 両Bookは同一パス内にありコピー先のsheetも事前にできています。 どなたかよろしくお願いいたします。 マクロ内の行にコメントで解説を入れていただけると助かります。

  • 【Excel VBA】ループについて

    Excel2003を使用しています。 2つのBook間でのループはできるのでしょうか? 下記のようにBook1のデータをBook2へ値のみコピーしたいのですが。。。  Book1のSheet1     Book2のSheet1   T7:T23          L19   U7:U23          L59   V7:V23          L99    :              :    :              :   AM7:AM23        L779 マクロ勉強中ですので、まず、マクロの記録をとってみたのですが、同じ処理の繰り返しなので、ループかな?と思い、参考書や似たような処理のコードを見たりしながら、あれこれ考えていたら、頭が混乱してきてしまいました(>_<) 2つのBook間では難しい(面倒)ならば、同じBookに変更することも考えています。 よろしくお願いします。

専門家に質問してみよう