Excel2010のVBAで起動時に連番表示&保存
【再掲載&追加情報です】
ずっとwindowsXP SP3を使用していたのですが(Excel2002 SP3もそのまま)
今回急遽社内のパソコンが2台(1台は自分のです)だけWindows7に変わりました。
その2台だけExcelも2002から2010に変わったのですが、使用しているファイルで記述してる
FileSearchが使えないとあとから知りました。(泣)
ネットで検索してFileSystemObjectを代わりに使用するというのを知りましたが
初心者の為理解が難しく・・・。
申し訳ありませんが記述の変更方法を教えていただけないでしょうか?
(1)フォルダーは ”C:\指示\記入済” に出来たExcelファイルを保存してます
(2)番号は指定フォルダ内のエクセルファイルをカウントしてその数+1を
U1のセルに表示させています。
(3)作成した保存ボタンで新見積書を保存する
但し、マクロコードとボタンを削除したものを保存する
(4)新見積書の保存後はブック、エクセルともに終了する
**************現在使用中データ**************
--- Module1 ----
Public Const FPath = "C:\指示\記入済"
'xlsファイル検索
Sub Auto_Open()
With Application.FileSearch
.NewSearch
.Filename = "*.xls"
.FileType = msoFileTypeAllFiles
.LookIn = FPath
.SearchSubFolders = False
.Execute
Cells(1, 21).Value = .FoundFiles.Count + 1
Cells(1, 21).NumberFormat = "0000"
End With
End Sub
--- Module2 ----
Sub ファイルに名前を付けて保存()
Dim 既定ファイル名 As String
Dim 保存ファイル名 As Variant
既定ファイル名 = FPath & "\" & Range("T1") & Format(Range("U1"), "0000") & Range("B1") & ".xls"
保存ファイル名 = Application.GetSaveAsFilename(既定ファイル名)
If 保存ファイル名 = False Then
MsgBox "保存は中止されました"
Exit Sub
End If
ActiveWorkbook.SaveCopyAs 保存ファイル名
Dim NewBook As Workbook
Set NewBook = Workbooks.Open(保存ファイル名)
Dim myVBA As Object
For Each myVBA In NewBook.VBProject.VBComponents
With myVBA
If .Type = 100 Then
.CodeModule.DeleteLines 1, .CodeModule.CountOfLines
Else
Application.VBE.activeVBProject.VBComponents.Remove myVBA
End If
End With
Next myVBA
NewBook.ActiveSheet.Shapes(1).Delete
NewBook.Close True
'●●●
Set NewBook = Workbooks.Open(保存ファイル名)
NewBook.Close True
'●●●
'ブックとエクセル終了
Application.Quit
ThisWorkbook.Close False
End Sub
********************************************
上記がExcel2002で問題なく動いている記述です。
最初Excel2010で起動してエラーが出たので検索したとき、てっきりFileSearchだけが問題
だと思っていたのですがもしかして他にもあったのでしょうか?
--- Module1 ----は、先ほど質問したときに
Public Const FPath = "C:\指示\記入済"
'xlsファイル検索
Sub Auto_Open()
Dim tmp as String
Dim i as Long
tmp = Dir(FPath & "¥*.xls")
Do While tmp <> ""
i = i + 1
tmp = Dir()
Loop
Cells(1, 21).Value = i+1
Cells(1, 21).NumberFormat = "0000"
End Sub
に変更したら動くようになりました。
ただ、作成した保存ボタンを押すと指定した場所に指定したセルの文字を拾って
ファイル名を表示させるまでマクロに登録(Module2)したのですが、
指定したフォルダは開いてるのですがファイル名が空欄のままです。
更にそれに手打ちでファイル名を打ち、保存すると
実行時エラー1004
プログラミングによるVisualBasicプロジェクトへのアクセスは信頼性に欠けます
と表示されます・・・。
デバックを押すと
For Each myVBA In NewBook.VBProject.VBComponents
の部分が黄色くなってました><
他に情報としては
このファイルはxlt(テンプレート)にしています。
使用者たちにはファイル名を打たせないように上記のようにしました。
再度宜しくお願いします・・・。
何度もお手数をおかけしまして申し訳ありません。。。