• ベストアンサー

VBA-EXCEL ファイルが存在しないときにある場所からコピーしてきてファイル名を変更したい

ご教授お願いいたします。 Excel2002上のワークシートでボタンを作り,ボタンをクリックすることでファイルを開くマクロを作りました。 ただ,ファイルがないと当然開けないのですが,内場合,ある特定の決められた場所から,Excelファイルをコピーしてきて,そのコピーしたファイルの名前を変更するようなマクロを作りたいのですが,サンプルみたいなものはないでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • bdr
  • ベストアンサー率43% (35/80)
回答No.2

これで如何ですか? ファイルがなかった場合、コピー元を開いて名前を付けて保存します Dim wb As Workbook Dim strFilePath As String Dim strOriFilePath strFilePath = "開くファイルのパス" strOriFilePath = "コピー元ファイルのパス" If Dir(strFilePath) = "" Then Set wb = Workbooks.Open(strOriFilePath) wb.SaveAs strFilePath Else Workbooks.Open strFilePath End If

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

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

ファイルチェックは Dir() コピーは、FileCopy が簡単だと思います。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_100.html

参考URL:
http://www.officetanaka.net/excel/vba/file/file06.htm
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルマクロでファイル名やシート名変更できない

    エクセルは初心者なのでマクロを自動記録して作成しています。 少しづつ動作を小分けにして記録して、まとめてボタンで連続実行させるようにしました。 (1)作成途中で失敗したら最初からの作業になると思い、 ある程度進んだら何度かファイルのコピーを作成して進めていました。 ある程度完成した時点でファイル名が「○○○4~コピー~」の様な名前だったので、正式に名前を決めて変更したらマクロの実行が出来なくなりました。(元の名前に戻すと実行可能) (2)またシートも複数のシートに跨って参照するようなマクロです。 シート名を分かりやすい名前に変更したらこの場合もマクロ実行できなくなりました。 (3)コピーしたファイルもマクロ実行できないものがあります。 コピーしたファイルはマクロ実行できないのでしょうか? (4)ファイル作成途中で何かの変更が生じて列や行の挿入を行った場合、 特定のセルを参照して計算するマクロは実行できなくなるのでしょうか? その場合、簡単に修正する方法はありますか? 初心者にも分かるような回答をよろしくお願いいたします。

  • VBAで別のExcelブックのボタンのマクロ登録

    Excelブック1とExcelブック2があります。 Excelブック1はVBAで 1)Excelブック2を開いて 2)Excelブック1のワークシート(Sheet1)と  モジュールシート(Module1)を  Excelブック2にコピーします。 3)ワークシート(Sheet1)にはコントロール(ボタン)が貼り付けてあって  このボタンをクリックするとモジュールシート(Module1)の中の  Excute_Button()というプロシージャ(マクロ)を呼び出すため  Excelブック1のVBAで  wb.Worksheets("Sheet1").Shapes.Range(Array("Button 1")).Select  Selection.OnAction = "Excute_Button"  と記述してボタンのマクロの登録をします。   (wbはExcelブック2を指しています) 4)Excelブック2を保存して閉じる。 という処理をしています。 この後、Excelブック1を閉じて、 Excelブック2を開いてワークシート(Sheet1)のボタンをクリックすると Excelブック1が開いてしまいます。 Excelブック2のボタンのマクロの登録のマクロ名を見てみると Excelブック1のファイル名!Excute_Button となっています。 Excelブック1のVBAで、ここを単にExcute_Buttonだけにするには どのようにすればよいでしょうか。

  • VBAでシートのコピー

    お世話になっております。 VBAの未熟者ですが、個人の資料作成のためのシステムをコツコツと作っております。 今までマクロでシートのコピーをやっていたのですが、コマンドボタンでできるように変更しようとしてうまくいきません。 ファイルAの中にある幾つかのシートの内、シート「個人事業」を「請求書」ファイルの「Sheet2」にコピーしたいのです。その後名前を変更しています。 マクロのプログラムをそのままコピーしてみたのですが、[sheets("個人事業").paste]のところでエラーが出ます。 マクロとコマンドボタンではやはり設定を変更しないといけないのでしょうか?ご教授お願いします。 Private Sub CommandButton1_Click() Sheets("Sheet2").Select Windows("未請求リスト.XLS").Activate Sheets("個人事業").Select Selection.Copy Windows("請求書.xls").Activate Sheets("Sheet2").Select Sheets("個人事業").Paste Sheets("Sheet2").Name = "個人事業請求一覧" Sheets("請求書").Select End Sub 宜しくお願いします。

  • VBA Shapes コピーと名前

    どうも、お世話になっています。 VBA初心者です。 エクセルのワークシート上の ActiveSheet.Shapes("Picture 1") を コピペするマクロを 作っているのですが あらたにコピーされた図形の名前を設定できますか。 出来たオブジェクトを選択するマクロができなくて困っています。 ご教授願います。

  • エクセルVBAを利用してワークシート名を変更するには

    エクセルVBAを利用してワークシート名を変更するには Sub ~~() Worksheets("sheet1").Name = "新しい名前" End Sub と文献にはあるのですが ワークシート上の名前変更のための コマンドボタンをクリックしたら ある場所のセルの値が名前になるように設定したいのですが どのようにすればいいのでしょうか?? いちおうわからないなりに予想したのは Sub シートの名前変更() ActiveSheets.Name = Range("Z3").Value End Sub これでZ3の値を名前に設定できるのではと思ったのですが うまくいきませんでした

  • EXCEL VBA 別ファイルのフィールドをコピー

    EXCEL VBA初心者です。 有識者の方、ご教授願いします。 EXCELVBAで、別ブックのシートから特定のフィールドを特定の行までコピーしたいのですが、そのマクロを教えていただきたいのです。 例えば、基本となるブック「サンプル」のsheet1が以下のようだったとします。    A   B     C     D     E     F・・・ _______________________ 1|番号 日付 企業名 電話番号 備考・・・ また、元となるブック「A」のsheet1が以下のようだったとします。    A   B     C     D     E     F・・・ _______________________ 1| 2|作業一覧 3|コード  事業社名 開始年月日  チェック     備考・・・ 4|00122 ユースノウ 1978/12/21    あり     担当:森田 5|00335 路医ポット 2004/11/1     なし     会議依頼あり(3/4日 石田確認済み) ・・・ 行いたいマクロは、まず、「サンプル」のSheet1を開き、A2にアクティブセルを移動し、マクロを実行すると、 ダイアログボックスに「指定ファイルを選択してください。」と出て、通常のファイルを開くと同じような作業をし、「A」をしています。「次へ」コマンドボタンをクリックすると今度は、「番号」と対応するフィールドフィールド名を選択してください」と出て「A」の3行にあるフィールド名一覧から「コード」を選択し、実行をすると、次は「日付」と対応するフィールド名を選択してください。」と出て・・・あとは順々に「サンプル」にあるフィールドの対応するものを聞きます。そして実行をすると、00122からのレコードがコピーされる、というマクロです。 ちなみに、「サンプル」の電話番号のように、元のフィールドに同じようなフィールドがないものもありますし、逆に、「A」のチェックのように、コピーするひつようのない、フィールドもあります。 よろしくお願いします。

  • VBA シートのボタン名を変更したい

    こんにちは。 Excelのマクロを作成しているのですが、 ユーザーフォームではなく、 シートにあるフォームのボタンの名前を変更したいのです。 どうしたら変更できるのでしょうか。 わかるかたいらっしゃいましたら、教えてください。 よろしくお願いします。

  • エクセルVBAでコピー

    エクセルVBAでのコピーについての質問です。 ブック1 とブック2があります。 ブック1 のSheet1 内にマクロ含むワークシートを 新規ブックにファイル名を指定して 下記のようなプログラムでコピーしようとすると (標準モジュール1の内容) Sub newfilesave() MsgBox "デスクトップの「○○」フォルダに控え○○_日付時間.xlsxファイルを生成します。" Sheets("受付仕分リスト").Copy ActiveSheet.Cells.Copy ActiveSheet.Cells.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False ActiveSheet.Range("A1").Select 'マクロなしのエクセルデータとして名前を付け、ファイル形式も決めてデスクトップに日付を付けて保存する。。 ActiveWorkbook.SaveAs _ Filename:="C:\Users\user\Desktop\○○\○○_" & Format(Now(), "yyyymmdd_hhmm"), _ FileFormat:=xlOpenXMLWorkbook End Sub Sheet1 内にマクロの内容までコピーされてしまいます。 ブック1のレイアウトや書式などはそのままに マクロ部分だけを取り除いてコピーするには どのような流れでプログラムすればいいでしょうか? よろしくお願いします。

  • シートコピーと値の転記 シート名変更マクロを

    エクセル2010で マクロのご教授をお願いいたします。 BOOK1の Sheet1 A1~A10に 数値1000が入力されているとして Sheet1のシートのコピーを作成 Sheet1にもどり A1~A3の値だけコピーして 作業列C1に 値を貼り付け A1~A10 をクリアーにしたのちに  ※↓が うまくいきません。 A1の値→ A8 A2の値→ A9 A3の値→ A10 に入力 させるマクロは どうなるでしょうか? マクロの記録で いろいろと やってみましたが どうも ※の部分が うまくいきません どう考えてもエクセルに対しての 理解不足だと思われますが、ご教授のほどお願いします。 おこなった自動マクロの記録は↓です。 マクロの記録開始する 名前 シートコピー Sheet1を右クリックして移動またコピー コピーを作成にチェックをいれ OK コピーシートが作成される。 Sheet1をクリックしなおして A1からA3をコピー  作業列として C1に 形式を選択して貼り付け 値 A1~A10を delete でクリア C1~C3を選択 コピー A8に 形式を選択して貼り付け 値 マクロの記録終了。 あと Sheet1をコピーするさいに シート名を前日の日付に自動的に変更できればと いいなと 考えておりますが できるのでしょうか? 例えば、本日でいえば シート名→ 0112 のような シート名を変更できればすてきだと おもいます。 どうぞ よろしくお願いします。

  • excel新ブック作成しシートをコピーし名前つけ

    マクロ初心者です。 Excel2003を使っています。 新ブックを作って、指定分のコピーシートを作製し、更にブックとシートに名前をつけて、もっと言えば各シートのセルA2の場所にシート名と同じ日付が入る 夢のようなワンクリックのマクロが出来ないものでしょうか? よろしくお願いいたします。