PC Review


Reply
Thread Tools Rate Thread

How do I set initial Excel workbook name?

 
 
John Brock
Guest
Posts: n/a
 
      15th Feb 2007
My VB.NET program pops up an Excel workbook for the user. If I
initially create the workbook using:

Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet)

I end up with a workbook named "sheet1". If I use an existing
Excel file as a template, e.g.:

Workbooks.Add("C:\temp\MyTemplateFile.xls")

I end up with a workbook named "MyTemplateFile1".

Neither name is particularly appropriate, so I want to find a way
to set the workbook name myself when I first create the file.

You can always *get* the name using the Name property, but that
property is read-only, so you can't set the name that way. I can
of course save the file, using the SaveAs method, and set the name
to something new in the process. But I don't want to save the file
myself -- I want the user to look at the file, decide whether he
wants to keep it, and then decide where and under what name to save
it. I just want to give him an appropriate name to start with;
but if he doesn't like what he sees I would prefer the file never
be saved at all.

BTW, I think I can understand why you can't set the Name property
after the workbook has been created. While this would make sense
if -- as in my case -- the file exists only in memory, I can see
where it could give you problems if you are working with a file
that has already been saved to disk with a particular name. But
I don't see why I should be forced to accept an arbitrary default
name when no file yet exists on disk!
--
John Brock
(E-Mail Removed)

 
Reply With Quote
 
 
 
 
=?Utf-8?B?Sm9lbA==?=
Guest
Posts: n/a
 
      15th Feb 2007
How about after the workbook is opened

Workbooks(ThisWorkbook.Name).name = "My New workbook Name"

"John Brock" wrote:

> My VB.NET program pops up an Excel workbook for the user. If I
> initially create the workbook using:
>
> Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet)
>
> I end up with a workbook named "sheet1". If I use an existing
> Excel file as a template, e.g.:
>
> Workbooks.Add("C:\temp\MyTemplateFile.xls")
>
> I end up with a workbook named "MyTemplateFile1".
>
> Neither name is particularly appropriate, so I want to find a way
> to set the workbook name myself when I first create the file.
>
> You can always *get* the name using the Name property, but that
> property is read-only, so you can't set the name that way. I can
> of course save the file, using the SaveAs method, and set the name
> to something new in the process. But I don't want to save the file
> myself -- I want the user to look at the file, decide whether he
> wants to keep it, and then decide where and under what name to save
> it. I just want to give him an appropriate name to start with;
> but if he doesn't like what he sees I would prefer the file never
> be saved at all.
>
> BTW, I think I can understand why you can't set the Name property
> after the workbook has been created. While this would make sense
> if -- as in my case -- the file exists only in memory, I can see
> where it could give you problems if you are working with a file
> that has already been saved to disk with a particular name. But
> I don't see why I should be forced to accept an arbitrary default
> name when no file yet exists on disk!
> --
> John Brock
> (E-Mail Removed)
>
>

 
Reply With Quote
 
RobinS
Guest
Posts: n/a
 
      15th Feb 2007

The [name] property of the worksheet is *not* read-only. It is a property
of the worksheet. This property is what's displayed in the tab at the
bottom of a workbook.

I've used this in my code:

xlSheet = CType(xlBook.WorkSheets(1), Excel.WorkSheet)
xlSheet.Activate()
xlSheet.Name = "blah blah"

xlBook is my current workbook.

Robin S.
-----------------------------------------
"John Brock" <(E-Mail Removed)> wrote in message
news:er26l2$c5m$(E-Mail Removed)...
> My VB.NET program pops up an Excel workbook for the user. If I
> initially create the workbook using:
>
> Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet)
>
> I end up with a workbook named "sheet1". If I use an existing
> Excel file as a template, e.g.:
>
> Workbooks.Add("C:\temp\MyTemplateFile.xls")
>
> I end up with a workbook named "MyTemplateFile1".
>
> Neither name is particularly appropriate, so I want to find a way
> to set the workbook name myself when I first create the file.
>
> You can always *get* the name using the Name property, but that
> property is read-only, so you can't set the name that way. I can
> of course save the file, using the SaveAs method, and set the name
> to something new in the process. But I don't want to save the file
> myself -- I want the user to look at the file, decide whether he
> wants to keep it, and then decide where and under what name to save
> it. I just want to give him an appropriate name to start with;
> but if he doesn't like what he sees I would prefer the file never
> be saved at all.
>
> BTW, I think I can understand why you can't set the Name property
> after the workbook has been created. While this would make sense
> if -- as in my case -- the file exists only in memory, I can see
> where it could give you problems if you are working with a file
> that has already been saved to disk with a particular name. But
> I don't see why I should be forced to accept an arbitrary default
> name when no file yet exists on disk!
> --
> John Brock
> (E-Mail Removed)
>



 
Reply With Quote
 
Charles Williams
Guest
Posts: n/a
 
      15th Feb 2007
John,

Your analysis is correct: there is no way of changing the name of a workbook
except by Saveas etc.

IMHO leaving the name of the book as Book1 is the best approach because the
user is more likely to recognise this as the name of a new unsaved workbook.
Thats what I usually do, and then I give any sheets I generate within the
workbook meaningful names.

regards
Charles
______________________
Decision Models
FastExcel 2.3 now available
Name Manager 4.0 now available
www.DecisionModels.com


 
Reply With Quote
 
Dave Peterson
Guest
Posts: n/a
 
      15th Feb 2007
Maybe you could rename the template file to something more significant before
you use it as the basis of your new workbook.

Then rename it back (or just leave it with the new nice name).

John Brock wrote:
>
> My VB.NET program pops up an Excel workbook for the user. If I
> initially create the workbook using:
>
> Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet)
>
> I end up with a workbook named "sheet1". If I use an existing
> Excel file as a template, e.g.:
>
> Workbooks.Add("C:\temp\MyTemplateFile.xls")
>
> I end up with a workbook named "MyTemplateFile1".
>
> Neither name is particularly appropriate, so I want to find a way
> to set the workbook name myself when I first create the file.
>
> You can always *get* the name using the Name property, but that
> property is read-only, so you can't set the name that way. I can
> of course save the file, using the SaveAs method, and set the name
> to something new in the process. But I don't want to save the file
> myself -- I want the user to look at the file, decide whether he
> wants to keep it, and then decide where and under what name to save
> it. I just want to give him an appropriate name to start with;
> but if he doesn't like what he sees I would prefer the file never
> be saved at all.
>
> BTW, I think I can understand why you can't set the Name property
> after the workbook has been created. While this would make sense
> if -- as in my case -- the file exists only in memory, I can see
> where it could give you problems if you are working with a file
> that has already been saved to disk with a particular name. But
> I don't see why I should be forced to accept an arbitrary default
> name when no file yet exists on disk!
> --
> John Brock
> (E-Mail Removed)


--

Dave Peterson
 
Reply With Quote
 
RobinS
Guest
Posts: n/a
 
      15th Feb 2007
You're right; I missed that he was looking at the workbook instead of the
worksheet.

Robin S.
----------------------------
"Charles Williams" <(E-Mail Removed)> wrote in message
news:%(E-Mail Removed)...
> John,
>
> Your analysis is correct: there is no way of changing the name of a
> workbook except by Saveas etc.
>
> IMHO leaving the name of the book as Book1 is the best approach because
> the user is more likely to recognise this as the name of a new unsaved
> workbook. Thats what I usually do, and then I give any sheets I generate
> within the workbook meaningful names.
>
> regards
> Charles
> ______________________
> Decision Models
> FastExcel 2.3 now available
> Name Manager 4.0 now available
> www.DecisionModels.com
>



 
Reply With Quote
 
John Brock
Guest
Posts: n/a
 
      16th Feb 2007
Here is one problem: Let's say I pick a nice new temporary name
for my template file, say, "BudgetReport.xls". When I create the
file the user will see it as "BudgetReport1", and when he saves it
the suggested name will be "BudgetReport1.xls". The user gets to
modify the name, so maybe he gets rid of that pointless "1". No
problem so far, but what if he runs the program again? This time
I can't rename my template file, because that nice new name is
already taken! I could code around that, and temporarily rename
both files, but frankly it's not a big enough problem to be worth
the bother.

Still, I think it's surprising that Microsoft doesn't allow the
programmer to control such a visible piece of text. The obvious
solution would be an optional parameter to the Add method, i.e.:

Workbooks.Add("C:\temp\MyTemplateFile.xls", Name:="BudgetReport")

I don't see any way this could cause any problems -- any Microsofties
out there listening? :-)

In article <(E-Mail Removed)>,
Dave Peterson <(E-Mail Removed)> wrote:
>Maybe you could rename the template file to something more significant before
>you use it as the basis of your new workbook.
>
>Then rename it back (or just leave it with the new nice name).


>John Brock wrote:
>>
>> My VB.NET program pops up an Excel workbook for the user. If I
>> initially create the workbook using:
>>
>> Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet)
>>
>> I end up with a workbook named "sheet1". If I use an existing
>> Excel file as a template, e.g.:
>>
>> Workbooks.Add("C:\temp\MyTemplateFile.xls")
>>
>> I end up with a workbook named "MyTemplateFile1".
>>
>> Neither name is particularly appropriate, so I want to find a way
>> to set the workbook name myself when I first create the file.
>>
>> You can always *get* the name using the Name property, but that
>> property is read-only, so you can't set the name that way. I can
>> of course save the file, using the SaveAs method, and set the name
>> to something new in the process. But I don't want to save the file
>> myself -- I want the user to look at the file, decide whether he
>> wants to keep it, and then decide where and under what name to save
>> it. I just want to give him an appropriate name to start with;
>> but if he doesn't like what he sees I would prefer the file never
>> be saved at all.
>>
>> BTW, I think I can understand why you can't set the Name property
>> after the workbook has been created. While this would make sense
>> if -- as in my case -- the file exists only in memory, I can see
>> where it could give you problems if you are working with a file
>> that has already been saved to disk with a particular name. But
>> I don't see why I should be forced to accept an arbitrary default
>> name when no file yet exists on disk!

--
John Brock
(E-Mail Removed)

 
Reply With Quote
 
Dave Peterson
Guest
Posts: n/a
 
      16th Feb 2007
I doubt that anyone from MS will find your message and read it.

This is usually users helping users--every once in awhile, you'll see someone
from MS, but it's pretty rare.

Maybe you could add code that saves the file (or just prompts the user to save
the file) as soon as you create the file???

Then you can use any name you or the user wants.

John Brock wrote:
>
> Here is one problem: Let's say I pick a nice new temporary name
> for my template file, say, "BudgetReport.xls". When I create the
> file the user will see it as "BudgetReport1", and when he saves it
> the suggested name will be "BudgetReport1.xls". The user gets to
> modify the name, so maybe he gets rid of that pointless "1". No
> problem so far, but what if he runs the program again? This time
> I can't rename my template file, because that nice new name is
> already taken! I could code around that, and temporarily rename
> both files, but frankly it's not a big enough problem to be worth
> the bother.
>
> Still, I think it's surprising that Microsoft doesn't allow the
> programmer to control such a visible piece of text. The obvious
> solution would be an optional parameter to the Add method, i.e.:
>
> Workbooks.Add("C:\temp\MyTemplateFile.xls", Name:="BudgetReport")
>
> I don't see any way this could cause any problems -- any Microsofties
> out there listening? :-)
>
> In article <(E-Mail Removed)>,
> Dave Peterson <(E-Mail Removed)> wrote:
> >Maybe you could rename the template file to something more significant before
> >you use it as the basis of your new workbook.
> >
> >Then rename it back (or just leave it with the new nice name).

>
> >John Brock wrote:
> >>
> >> My VB.NET program pops up an Excel workbook for the user. If I
> >> initially create the workbook using:
> >>
> >> Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet)
> >>
> >> I end up with a workbook named "sheet1". If I use an existing
> >> Excel file as a template, e.g.:
> >>
> >> Workbooks.Add("C:\temp\MyTemplateFile.xls")
> >>
> >> I end up with a workbook named "MyTemplateFile1".
> >>
> >> Neither name is particularly appropriate, so I want to find a way
> >> to set the workbook name myself when I first create the file.
> >>
> >> You can always *get* the name using the Name property, but that
> >> property is read-only, so you can't set the name that way. I can
> >> of course save the file, using the SaveAs method, and set the name
> >> to something new in the process. But I don't want to save the file
> >> myself -- I want the user to look at the file, decide whether he
> >> wants to keep it, and then decide where and under what name to save
> >> it. I just want to give him an appropriate name to start with;
> >> but if he doesn't like what he sees I would prefer the file never
> >> be saved at all.
> >>
> >> BTW, I think I can understand why you can't set the Name property
> >> after the workbook has been created. While this would make sense
> >> if -- as in my case -- the file exists only in memory, I can see
> >> where it could give you problems if you are working with a file
> >> that has already been saved to disk with a particular name. But
> >> I don't see why I should be forced to accept an arbitrary default
> >> name when no file yet exists on disk!

> --
> John Brock
> (E-Mail Removed)


--

Dave Peterson
 
Reply With Quote
 
RobinS
Guest
Posts: n/a
 
      16th Feb 2007
MS only answers q's in the dotnet newsgroups for its MSDN subscribers.

Just FYI.
Robin S.
--------------------
"Dave Peterson" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
>I doubt that anyone from MS will find your message and read it.
>
> This is usually users helping users--every once in awhile, you'll see
> someone
> from MS, but it's pretty rare.
>
> Maybe you could add code that saves the file (or just prompts the user to
> save
> the file) as soon as you create the file???
>
> Then you can use any name you or the user wants.
>
> John Brock wrote:
>>
>> Here is one problem: Let's say I pick a nice new temporary name
>> for my template file, say, "BudgetReport.xls". When I create the
>> file the user will see it as "BudgetReport1", and when he saves it
>> the suggested name will be "BudgetReport1.xls". The user gets to
>> modify the name, so maybe he gets rid of that pointless "1". No
>> problem so far, but what if he runs the program again? This time
>> I can't rename my template file, because that nice new name is
>> already taken! I could code around that, and temporarily rename
>> both files, but frankly it's not a big enough problem to be worth
>> the bother.
>>
>> Still, I think it's surprising that Microsoft doesn't allow the
>> programmer to control such a visible piece of text. The obvious
>> solution would be an optional parameter to the Add method, i.e.:
>>
>> Workbooks.Add("C:\temp\MyTemplateFile.xls", Name:="BudgetReport")
>>
>> I don't see any way this could cause any problems -- any Microsofties
>> out there listening? :-)
>>
>> In article <(E-Mail Removed)>,
>> Dave Peterson <(E-Mail Removed)> wrote:
>> >Maybe you could rename the template file to something more significant
>> >before
>> >you use it as the basis of your new workbook.
>> >
>> >Then rename it back (or just leave it with the new nice name).

>>
>> >John Brock wrote:
>> >>
>> >> My VB.NET program pops up an Excel workbook for the user. If I
>> >> initially create the workbook using:
>> >>
>> >> Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet)
>> >>
>> >> I end up with a workbook named "sheet1". If I use an existing
>> >> Excel file as a template, e.g.:
>> >>
>> >> Workbooks.Add("C:\temp\MyTemplateFile.xls")
>> >>
>> >> I end up with a workbook named "MyTemplateFile1".
>> >>
>> >> Neither name is particularly appropriate, so I want to find a way
>> >> to set the workbook name myself when I first create the file.
>> >>
>> >> You can always *get* the name using the Name property, but that
>> >> property is read-only, so you can't set the name that way. I can
>> >> of course save the file, using the SaveAs method, and set the name
>> >> to something new in the process. But I don't want to save the file
>> >> myself -- I want the user to look at the file, decide whether he
>> >> wants to keep it, and then decide where and under what name to save
>> >> it. I just want to give him an appropriate name to start with;
>> >> but if he doesn't like what he sees I would prefer the file never
>> >> be saved at all.
>> >>
>> >> BTW, I think I can understand why you can't set the Name property
>> >> after the workbook has been created. While this would make sense
>> >> if -- as in my case -- the file exists only in memory, I can see
>> >> where it could give you problems if you are working with a file
>> >> that has already been saved to disk with a particular name. But
>> >> I don't see why I should be forced to accept an arbitrary default
>> >> name when no file yet exists on disk!

>> --
>> John Brock
>> (E-Mail Removed)

>
> --
>
> Dave Peterson



 
Reply With Quote
 
Dave Peterson
Guest
Posts: n/a
 
      16th Feb 2007
Every once in awhile, there'll be a response from MS employees. But it's pretty
rare (at least in the .public excel newsgroups).

RobinS wrote:
>
> MS only answers q's in the dotnet newsgroups for its MSDN subscribers.
>
> Just FYI.
> Robin S.
> --------------------
> "Dave Peterson" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> >I doubt that anyone from MS will find your message and read it.
> >
> > This is usually users helping users--every once in awhile, you'll see
> > someone
> > from MS, but it's pretty rare.
> >
> > Maybe you could add code that saves the file (or just prompts the user to
> > save
> > the file) as soon as you create the file???
> >
> > Then you can use any name you or the user wants.
> >
> > John Brock wrote:
> >>
> >> Here is one problem: Let's say I pick a nice new temporary name
> >> for my template file, say, "BudgetReport.xls". When I create the
> >> file the user will see it as "BudgetReport1", and when he saves it
> >> the suggested name will be "BudgetReport1.xls". The user gets to
> >> modify the name, so maybe he gets rid of that pointless "1". No
> >> problem so far, but what if he runs the program again? This time
> >> I can't rename my template file, because that nice new name is
> >> already taken! I could code around that, and temporarily rename
> >> both files, but frankly it's not a big enough problem to be worth
> >> the bother.
> >>
> >> Still, I think it's surprising that Microsoft doesn't allow the
> >> programmer to control such a visible piece of text. The obvious
> >> solution would be an optional parameter to the Add method, i.e.:
> >>
> >> Workbooks.Add("C:\temp\MyTemplateFile.xls", Name:="BudgetReport")
> >>
> >> I don't see any way this could cause any problems -- any Microsofties
> >> out there listening? :-)
> >>
> >> In article <(E-Mail Removed)>,
> >> Dave Peterson <(E-Mail Removed)> wrote:
> >> >Maybe you could rename the template file to something more significant
> >> >before
> >> >you use it as the basis of your new workbook.
> >> >
> >> >Then rename it back (or just leave it with the new nice name).
> >>
> >> >John Brock wrote:
> >> >>
> >> >> My VB.NET program pops up an Excel workbook for the user. If I
> >> >> initially create the workbook using:
> >> >>
> >> >> Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet)
> >> >>
> >> >> I end up with a workbook named "sheet1". If I use an existing
> >> >> Excel file as a template, e.g.:
> >> >>
> >> >> Workbooks.Add("C:\temp\MyTemplateFile.xls")
> >> >>
> >> >> I end up with a workbook named "MyTemplateFile1".
> >> >>
> >> >> Neither name is particularly appropriate, so I want to find a way
> >> >> to set the workbook name myself when I first create the file.
> >> >>
> >> >> You can always *get* the name using the Name property, but that
> >> >> property is read-only, so you can't set the name that way. I can
> >> >> of course save the file, using the SaveAs method, and set the name
> >> >> to something new in the process. But I don't want to save the file
> >> >> myself -- I want the user to look at the file, decide whether he
> >> >> wants to keep it, and then decide where and under what name to save
> >> >> it. I just want to give him an appropriate name to start with;
> >> >> but if he doesn't like what he sees I would prefer the file never
> >> >> be saved at all.
> >> >>
> >> >> BTW, I think I can understand why you can't set the Name property
> >> >> after the workbook has been created. While this would make sense
> >> >> if -- as in my case -- the file exists only in memory, I can see
> >> >> where it could give you problems if you are working with a file
> >> >> that has already been saved to disk with a particular name. But
> >> >> I don't see why I should be forced to accept an arbitrary default
> >> >> name when no file yet exists on disk!
> >> --
> >> John Brock
> >> (E-Mail Removed)

> >
> > --
> >
> > Dave Peterson


--

Dave Peterson
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How do I set initial Excel workbook name? John Brock Microsoft Excel Programming 10 16th Feb 2007 05:26 PM
How do I set initial Excel workbook name? John Brock Microsoft Excel Misc 10 16th Feb 2007 05:26 PM
Saving Multiple Sheets to Another Spreadsheet Without Leaving the Initial Workbook Carroll Microsoft Excel Programming 4 21st Jun 2005 06:06 PM
Initial WorkBook Name Joe Microsoft Excel Misc 4 6th Mar 2004 05:06 AM
Excel 97 Workbook opens behind initial blank Workbook B. Green Microsoft Excel Misc 0 9th Jul 2003 03:27 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 03:39 PM.