Excel VBA質問箱 IV

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

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


6855 / 13646 ツリー ←次へ | 前へ→

【42720】日毎のシートリンク作成について popopo 06/9/20(水) 9:33 質問[未読]
【42739】Re:日毎のシートリンク作成について ハチ 06/9/20(水) 13:03 回答[未読]
【42741】Re:日毎のシートリンク作成について popopo 06/9/20(水) 13:39 お礼[未読]

【42720】日毎のシートリンク作成について
質問  popopo  - 06/9/20(水) 9:33 -

引用なし
パスワード
   日毎のシートリンク作成のため、下記のVBAをサイトから検索して作成しました。
もとのブックが3メガと大きいため、シートの値と書式だけをコピーしたいと考えています。
しかし、このVBAを実行するとSheetのVBAもコピーされるし、計算式もコピーされて、2M程度の大きいブックとなってしまいます。
どうかお助け願います。


Sub シート保存()
Dim fl_name As String
Dim 日付 as integer

Application.ScreenUpdating = False

日付 = Worksheets("Sheet1").Range("A1").Value

 fl_name = 日付 & ".xls"
 
 Worksheets(Array("Sheet1", "Sheet3")).Copy
 
    
 ChDir "D:\仕事"
 
 
 Application.DisplayAlerts = False
  
 
 ActiveWorkbook.SaveAs Filename:=fl_name
 ActiveWindow.Close
 Application.ScreenUpdating = True
End Sub

【42739】Re:日毎のシートリンク作成について
回答  ハチ  - 06/9/20(水) 13:03 -

引用なし
パスワード
   ▼popopo さん:
>日毎のシートリンク作成のため、下記のVBAをサイトから検索して作成しました。
>もとのブックが3メガと大きいため、シートの値と書式だけをコピーしたいと考えています。
>しかし、このVBAを実行するとSheetのVBAもコピーされるし、計算式もコピーされて、2M程度の大きいブックとなってしまいます。
>どうかお助け願います。

先に新しいBookを作っておいて
Sheetの値 と書式 だけとすると・・・

Option Explicit

Sub Test()

  Dim wb1 As Workbook, wb2 As Workbook
  Dim ws As Worksheet
  Dim 日付 As String
  Dim i As Integer
  
  Set wb1 = ThisWorkbook
  Set wb2 = Workbooks.Add(xlWBATWorksheet)
  wb2.Worksheets.Add After:=Worksheets(1)
  日付 = wb1.Worksheets(1).Range("A1").Value
  
  i = 1
  For Each ws In wb1.Worksheets(Array("Sheet1", "Sheet3"))
    ws.Cells.Copy
    With wb2.Worksheets(i)
      '値
      .Range("A1").PasteSpecial Paste:=xlValues, _
      Operation:=xlNone, SkipBlanks:=False, Transpose:=False
      '書式
      .Range("A1").PasteSpecial Paste:=xlFormats, _
      Operation:=xlNone, SkipBlanks:=False, Transpose:=False
      'Sheet名
      .Name = ws.Name
      Application.CutCopyMode = False
    End With
    i = i + 1
  Next ws
  
  wb2.SaveAs "D:\仕事\" & 日付 & ".xls"
  wb2.Close
  Set wb1 = Nothing
  Set wb2 = Nothing
End Sub

【42741】Re:日毎のシートリンク作成について
お礼  popopo  - 06/9/20(水) 13:39 -

引用なし
パスワード
   ▼ハチ さん:
>▼popopo さん:
>>日毎のシートリンク作成のため、下記のVBAをサイトから検索して作成しました。
>>もとのブックが3メガと大きいため、シートの値と書式だけをコピーしたいと考えています。
>>しかし、このVBAを実行するとSheetのVBAもコピーされるし、計算式もコピーされて、2M程度の大きいブックとなってしまいます。
>>どうかお助け願います。
>
>先に新しいBookを作っておいて
>Sheetの値 と書式 だけとすると・・・
>
>Option Explicit
>
>Sub Test()
>
>  Dim wb1 As Workbook, wb2 As Workbook
>  Dim ws As Worksheet
>  Dim 日付 As String
>  Dim i As Integer
>  
>  Set wb1 = ThisWorkbook
>  Set wb2 = Workbooks.Add(xlWBATWorksheet)
>  wb2.Worksheets.Add After:=Worksheets(1)
>  日付 = wb1.Worksheets(1).Range("A1").Value
>  
>  i = 1
>  For Each ws In wb1.Worksheets(Array("Sheet1", "Sheet3"))
>    ws.Cells.Copy
>    With wb2.Worksheets(i)
>      '値
>      .Range("A1").PasteSpecial Paste:=xlValues, _
>      Operation:=xlNone, SkipBlanks:=False, Transpose:=False
>      '書式
>      .Range("A1").PasteSpecial Paste:=xlFormats, _
>      Operation:=xlNone, SkipBlanks:=False, Transpose:=False
>      'Sheet名
>      .Name = ws.Name
>      Application.CutCopyMode = False
>    End With
>    i = i + 1
>  Next ws
>  
>  wb2.SaveAs "D:\仕事\" & 日付 & ".xls"
>  wb2.Close
>  Set wb1 = Nothing
>  Set wb2 = Nothing
>End Sub

有り難うございました。
おかげさまで助かりました。
ハチさん 又よろしくお願いいたします。

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