|    | 
     こんにちは、よろしくお願いします。 
作成したファイルを年度末に前年分として 
マクロを抜いたファイルとして保存したくて下記コードを書きました。 
(恥ずかしながら殆どコピペです) 
 
問題なのは 下記コードで・・・問題と書いてある部分です。 
これは私が足しました。 
arrayの部分の"さしすせそ" & smonth & "月" も私が足しました。 
 
本ブックにはさしすせそ4〜3月のシートがあるのですが、これが非固定です。 
4月しかないこともあれば、4〜3月までびっちりある場合もある。 
4,5,7,8,12のように飛び飛びのこともあります。 
下記のように書くと、 
   
WBK1.Worksheets(tblSH).Copy 
 
の部分でエラーになります。 
解りにくいかもしれませんが、正しいコードをご教示いただけないでしょうか 
 
Private Sub CommandButton17_Click() 
 
 Const cnsTITLE = "マクロなしブックの作成" 
  Const cnsFILTER = "Excelワークブック (*.xls),*.xls" 
  Dim xlAPP As Application 
  Dim WBK1 As Workbook          ' 本ブック 
  Dim WBK2 As Workbook          ' 作成ブック 
  Dim objVBCOMPO As Object 
  Dim strFILENAME As String 
  Dim tblSH As Variant 
  Dim lngLines As Long 
  Dim smonth As Long 
   
  
  smonth = 1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Or 10 Or 11 Or 12・・・問題 
   
  tblSH = Array("あいう", "あいうえ", "あいうえお", "かきく", "かきくけ", "かきくけこ", "さしす", "さしすせ", "さしすせそ" & smonth & "月") 
     
 
  Set xlAPP = Application 
  Set WBK1 = ThisWorkbook          
 
  xlAPP.StatusBar = "出力するファイル名を指定して下さい。" 
  strFILENAME = xlAPP.GetSaveAsFilename(InitialFileName:="データ年度.xls", _ 
    FileFilter:=cnsFILTER, Title:=cnsTITLE) 
   
  If StrConv(strFILENAME, vbUpperCase) = "FALSE" Then Exit Sub 
  If strFILENAME = WBK1.FullName Then 
    MsgBox "本ブックとは違うファイル名を指定して下さい。", , cnsTITLE 
    GoTo MAKE_NEWBOOK_WO_MACROS_EXIT 
  End If 
  
  WBK1.Worksheets(tblSH).Copy 
  Set WBK2 = ActiveWorkbook         
  
  
  For Each objVBCOMPO In WBK2.VBProject.VBComponents 
    With objVBCOMPO.CodeModule 
   
      lngLines = .CountOfLines 
      If lngLines <> 0 Then .DeleteLines 1, lngLines 
    End With 
  Next objVBCOMPO 
  WBK2.SaveAs Filename:=strFILENAME 
  WBK2.Close False 
  Set WBK2 = Nothing 
MAKE_NEWBOOK_WO_MACROS_EXIT: 
  Set WBK1 = Nothing 
  Set xlAPP = Nothing 
 
Unload Me 
End Sub 
 | 
     
    
   |