Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2220 / 13645 ツリー ←次へ | 前へ→

【69307】ワークシート指定のエクセル出力 管理表 11/6/23(木) 20:03 質問[未読]
【69312】Re:ワークシート指定のエクセル出力 UO3 11/6/23(木) 22:21 発言[未読]
【69324】Re:ワークシート指定のエクセル出力 管理表 11/6/24(金) 11:53 質問[未読]
【69325】Re:ワークシート指定のエクセル出力 neptune 11/6/24(金) 13:35 発言[未読]

【69307】ワークシート指定のエクセル出力
質問  管理表  - 11/6/23(木) 20:03 -

引用なし
パスワード
   エクセル出力について質問いたします。
ワークシートA、B、と2つのワークシートを別々に指定してエクセル出力するにはどうしたらよろしいでしょうか?

Private Sub CommandButton39_Click()

Dim Target As Range
Dim count_WAREA As Integer
Dim IRow As Long
 
  Set Target = ActiveSheet.UsedRange.Resize(, 128)
  Target.Select
 
  If MsgBox("試験データをExcel出力しますか?", vbOKCancel) _
                 = vbCancel Then Exit Sub
 
  Dim SaveFile ' CSVファイルパス
  SaveFile = CreateObject("WScript.Shell"). _
       SpecialFolders("DeskTop") & "\試験データ.xls"
  SaveFile = Application.GetSaveAsFilename(SaveFile, "Microsoft Office Excel ブック,*.xls")
  If VarType(SaveFile) = vbBoolean Then Exit Sub
 
  '(1)新規Bookをシート枚数1枚で 追加する。
  Set NewBook = Workbooks.Add(1)
 
  '(2) 元のBookの指定シートのUsedRange.Resize(,52) の範囲を _
    Copyして、新規BookのSheets(1).Range("A1")に貼り付ける。
  Target.Copy NewBook.Sheets(1).Range("A1")
 
  '(3)新規Bookをbook形式で保存する
  With NewBook
    .SaveAs SaveFile, xlExcel9795, Local:=True
    .Save
    .Close

  End With
  MsgBox "Excel形式で保存しました", , SaveFile
 
  Set Target = Nothing
  Set NewBook = Nothing
End Sub

構文を書きましたが、何処を変更していいか?
よろしくお願いいたします。

【69312】Re:ワークシート指定のエクセル出力
発言  UO3  - 11/6/23(木) 22:21 -

引用なし
パスワード
   ▼管理表 さん:

こんばんは

フォルダパス名のコメント CSVファイルパス というのにとらわれて、最初は? と思いましたが・・
以下のようなことですか?

・今、開かれているブックがある。
・そのブックにはシートAとシートBがある。(もしかしたら他のシートもある)
・シートAとシートBを、そのシート1枚だけの形で、別々の2つのブックとして保存する。

で、それとは別に、アップされたコードでは、シート1枚の新規ブックを生成して、そこに転記もとシートの
必要な領域を転記するという構成で、これでもいいのですが、
転記もとシート.Copy とすると、そのシートだけの新規ブックができますので、これでできたシートの
不要な部分をClearContentsとしたほうが、転記もとシートの書式なんかもそのまま継承されます。
私はこちらのやりかたが好きですね。

いずれにしても、上記要件でいいなら、

現在のコードを骨格としたサブプロシジャを作っておいて、それに、引数としてシートA,シートBを
与えるような構えにすればよろしいかと思います。
保存するファイル名をコード内できめることができるなら Application.GetSaveAsFilename ではなく
最初に保存フォルダを選択させ、あとはコードで、そのフォルダに保存ということもできますね。

【69324】Re:ワークシート指定のエクセル出力
質問  管理表  - 11/6/24(金) 11:53 -

引用なし
パスワード
   ▼UO3 さんお礼が遅れてすいませんです。
3年ぶりに作り始めたものでなかなか感覚が戻らずすいませんです。
何となく言われてる事が分かるのですが、実際どの様に構文をかけば良いか分からないので、申し訳ありませんがよろしくお願いいたします。

▼UO3 さん:
>▼管理表 さん:
>
>こんばんは
>
>フォルダパス名のコメント CSVファイルパス というのにとらわれて、最初は? と思いましたが・・
>以下のようなことですか?
>
>・今、開かれているブックがある。
>・そのブックにはシートAとシートBがある。(もしかしたら他のシートもある)
>・シートAとシートBを、そのシート1枚だけの形で、別々の2つのブックとして保存する。
>
>で、それとは別に、アップされたコードでは、シート1枚の新規ブックを生成して、そこに転記もとシートの
>必要な領域を転記するという構成で、これでもいいのですが、
>転記もとシート.Copy とすると、そのシートだけの新規ブックができますので、これでできたシートの
>不要な部分をClearContentsとしたほうが、転記もとシートの書式なんかもそのまま継承されます。
>私はこちらのやりかたが好きですね。
>
>いずれにしても、上記要件でいいなら、
>
>現在のコードを骨格としたサブプロシジャを作っておいて、それに、引数としてシートA,シートBを
>与えるような構えにすればよろしいかと思います。
>保存するファイル名をコード内できめることができるなら Application.GetSaveAsFilename ではなく
>最初に保存フォルダを選択させ、あとはコードで、そのフォルダに保存ということもできますね。

【69325】Re:ワークシート指定のエクセル出力
発言  neptune  - 11/6/24(金) 13:35 -

引用なし
パスワード
   ▼管理表 さん:
>▼UO3 さんお礼が遅れてすいませんです。
>3年ぶりに作り始めたものでなかなか感覚が戻らずすいませんです。
>何となく言われてる事が分かるのですが、実際どの様に構文をかけば良いか分からないので、申し訳ありませんがよろしくお願いいたします。

UO3 さんじゃないですが、ご自分で書かれたものならこの程度の長さのプログラム
ならhelpで調べながらでも少しの時間で現在のものとご希望の
物はどこが違うかわかるものです。

どのあたりが判らないのですか?

2220 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free