質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

48451閲覧

BOOKを開かずにシートのコピー

coko1

総合スコア276

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2016/09/14 08:30

編集2016/09/14 08:42

現在マクロを実行すると、開くexcelを選択してそのシートをコピーするような流れになっているのですが、excelのファイルを開いてシートをコピーするのではなくて、開かずにシートを丸ごとコピーする方法はありませんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coko1

2016/09/14 08:45 編集

丸投げではない気がします。どう受け取ってそう思ったのかを教えていただきたいです。
guest

回答2

0

ベストアンサー

ファイルをコピーすれば、全てのシートがワークブック毎コピーされます。

以下、追記1

VBAで行う場合は、FileCopyを使います。

以下の例はC:\Work\Sample1.xlsxC:\Work\Sample2.xlsxにコピーします。

FileCopy "C:\Work\Sample1.xlsx", "C:\Work\Sample2.xlsx"

投稿2016/09/14 08:32

編集2016/09/14 08:46
moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coko1

2016/09/14 08:53

この例ですとパスを指定していますが、ダイアログ画面から開かずにコピーするファイルを選択できたりはできないでしょうか?またコピーしたいのがマクロを実行しているexcelファイルの新しいシートなのですが、そのexcelの内容が上書きされることにはならないのでしょうか
moonphase

2016/09/14 09:14

ダイアログは以下でどうぞ。 Dim file1 As String file1 = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") コピー先が自分自身ということは、開かずに処理するのは不可能です。 厳密に言うと、FileCopyもExcelとしては開いてませんが、OSレベルではファイルを開いています。 Excelとして開かずに処理する場合は、ODBC Excel Driverを使って開き、中のデータを自分自身のワークブックに新しいシートにコピーすればいいです。 ですが、この方法では書式などがコピーされません。 他の方法として、SYLK形式であれば全てテキストで表現できるExcelファイルなので、これを利用するのもありです。 念のため確認したいのですが、開かずにコピーしたいのは何故でしょうか?
coko1

2016/09/15 02:34

ファイル開いて閉じるというステップを省けるのならそれが好ましかったので。
guest

0

解決済みのようですが、以前にも似た様な質問がありましたので参考までに。
→https://teratail.com/questions/37322

「ファイルを開かずに」という言葉の意味にもよるのですが、純粋にファイルを開かずにセルの値を参照する方法として、ExecuteExecl4Macroを利用する方法があります。
しかし、セルの参照だけではなくシートのコピーとなると、この関数では難しいと思います。

もし「ファイルを開かずに」という言葉が、「ファイルを開いたことがわからないように開いて、用が済んだら閉じる」のでもよいのであれば、先ほどご紹介した質問が役に立つかもしれません。

投稿2016/09/15 03:12

jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問