tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルExcelVBAで新規ブックの作成時にファイル名をあらかじめ決める方法
記事No12421
投稿日: 2008/06/03(Tue) 16:48
投稿者otk
マクロで新規ブックを作成するタイミングで、
ファイル名を事前に決めることはできないのでしょうか?

やりたいこと:
1、マクロで新規ブックを作成し、そこにデータを流し込む
2、ユーザー操作でファイルを「名前を付けて保存」を行う
3、「名前を付けて保存」ダイアログのファイル名の初期値として
  マクロから表示したいファイル名を設定しておく
(印刷時のページヘッダーにもブック名をできれば表示したい)

[ツリー表示へ]
タイトルRe: ExcelVBAで新規ブックの作成時にファイル名をあらかじめ決める方法
記事No12424
投稿日: 2008/06/03(Tue) 23:51
投稿者魔界の仮面弁士
> マクロで新規ブックを作成するタイミングで、
> ファイル名を事前に決めることはできないのでしょうか?
やりたい事とは微妙に違うかもしれませんが、新規ブックを
 Set WB = .Workbooks.Add("C:\サンプル.XLT")
のようにして、テンプレートから作成してみては如何でしょう。
この場合、保存時の初期ファイル名が「サンプル1.xls」になります。

[ツリー表示へ]
タイトルRe^2: ExcelVBAで新規ブックの作成時にファイル名をあらかじめ決める方法
記事No12428
投稿日: 2008/06/04(Wed) 09:21
投稿者otk
> やりたい事とは微妙に違うかもしれませんが、新規ブックを
>  Set WB = .Workbooks.Add("C:\サンプル.XLT")
> のようにして、テンプレートから作成してみては如何でしょう。
> この場合、保存時の初期ファイル名が「サンプル1.xls」になります。

この方法で初期ファイル名は設定できましたが、条件によって、
毎回ファイル名が変わりますので、あらかじめテンプレートを用意できません。
毎回リネームorコピーしてから開くのも考えましたが、
そうするとテンプレートファイルが大量に作られてしまいます。
終了時に削除してしまうとしても、強制終了などで
ゴミテンプレートが溜まってしまう恐れがあります。
(そもそもXLTから開いた状態で、そのXLTファイルを削除できる??)

wb.name = "XXXX_yyyymmdd.xls"
みたいに設定できればいいのになぁ・・・

[ツリー表示へ]
タイトルRe^3: ExcelVBAで新規ブックの作成時にファイル名をあらかじめ決める方法
記事No12429
投稿日: 2008/06/04(Wed) 10:37
投稿者魔界の仮面弁士
> (そもそもXLTから開いた状態で、そのXLTファイルを削除できる??)
XLTX でも XLT でも XLSX でも XLS でも構いませんが、すぐに削除できますよ。

元のファイルを直接開いているわけではなく、それを雛型とした「別ファイル」として
開いていますから、終了時まで待たずとも、Workbooks.Add した直後に破棄できます。

[ツリー表示へ]
タイトルRe^4: ExcelVBAで新規ブックの作成時にファイル名をあらかじめ決める方法
記事No12444
投稿日: 2008/06/05(Thu) 11:05
投稿者otk
> 終了時まで待たずとも、Workbooks.Add した直後に破棄できます。

以下の方法で新規ワークブックを作成することにしてみました。

Dim strFile1 As String
Dim strFile2 As String
strFile1 = ThisWorkbook.Path & "\" & "Test.xlt"
strFile2 = ThisWorkbook.Path & "\" & Format(Now, "yyyyMMdd") & ".xlt"
FileCopy strFile1, strFile2
Dim wb As Workbook
Set wb = Workbooks.Add(strFile2)
Kill strFile2

思い通りの動きができました!!

本当にありがとうございました。

[ツリー表示へ]