• ベストアンサー

開かれているExcelを元に別のBookを作成

Aブックの中にa,b,cというシートがあります。 1.Aブックを開いて、ボタンをクリック 2.B(名前は任意)というブックを新規作成 3.aやcのシートをコピーし、a',c'というシート名にする 4.その各シートのセルに値を代入 以上のことをさせようとしています。 なお2.以降は全てバックグラウンドで実行することが前提になっています。 いい方法ございましたら、よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

しっかり質問文は書いてくださいね。 VBから入る質問(WEBで照会のこと、多数あり)ようにも見えるが、下記はエクセルから(1)(2)するものとする。 (1)「Aブックを開」くのは人が操作 (2)「ボタンをクリック」も人が操作操作 するとする。 シートにボタンを1つ貼り付ける。そのボタンクリックイベントに Private Sub CommandButton1_Click() Dim bk1 As Workbook Dim bk2 As Workbook Set wb1 = ActiveWorkbook MsgBox wb1.Name Set wb2 = Workbooks.Add wb2.SaveAs "Book6b.xls" MsgBox wb2.Name Dim mySheet As Worksheet Set mySheet = wb1.Worksheets("商品別売上") mySheet.Copy Before:=wb2.Worksheets(3) ' wb2.Worksheets("商品別売上").Range("A1") = "assssssss" End Sub をコピペ。 全提はボタンを貼り付けたブック名は「Book6.xls」 ボタンを貼り付けたシート名は、「商品別売上」と仮定する。 新しく「Book6B.xls」というブックができて、そこに 「商品別売上」 シートをコピーし、A1セルに「assssssss」という値をセットしている。 ーー 「aやcのシートをコピー」-->上記では,aに当たるものしかコピーしてない。Cを増やしてください。a'にするにはシートの名前を変更のこと。 >.以降は全てバックグラウンドで実行することが・・ 難しそうなことを書いているが、できるという目算はあるのですか。 パソコンレベルでタスクの実行の優先順位(プライオリティ)をつけるコード作成スキルはないので、略。ウィンドウズはそういうOSではないのではないの。

その他の回答 (2)

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

>なお2.以降は全てバックグラウンドで実行することが前提になっています。 VBAなら他のブックをアクティブにしなければバックですし、 Application.ScreenUpdating = False として仕舞えばマクロの実行終了まで画面が変わりませんけど。 2.はブックのコピーを保存して、 3.コピーを開いてで不要シートの削除とシートのリネーム 4.の処理 という手順でいかがでしょうか?

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

こんちは。 >>いい方法ございましたら、よろしくお願いします。 VBのカテゴリで質問されてますけど、まず、ホントにVBですか? VBAとかじゃなく。VB.NETとかでもなく。 まぁ、一口に、VBと言っても、バージョンも分からないので的確なアドバイスはできないと思いますよ。 という事で、自分がVB6で同じようなことやってたときの参考サイトです。 http://hanatyan.sakura.ne.jp/

forgedcode
質問者

補足

STICKY2006 様 回答ありがとうございます。 質問ばっかりで開発環境の記載を忘れていました。 Excel2003 SP2 VBAです。

関連するQ&A