vb.net newbie - how do i define and obtain page setup orient

diana
3StarLounger
Posts: 279
Joined: 01 Jun 2010, 00:27

vb.net newbie - how do i define and obtain page setup orient

Post by diana »

hi im new to vb.net

I would like to obtain the current selections page orientation
so i can then set the new orientation either portrait or landscape, and apply the appropriate formatting

in vb.net how would i define and obtain the current page orientation?

heres the code in vba...

Dim x
x = Selection.PageSetup.Orientation

if x = landscape
apply correct formatting here

elseif x = potrairt
apply correct formatting here

endif

thank you

diana
Last edited by diana on 04 Aug 2010, 06:04, edited 1 time in total.

diana
3StarLounger
Posts: 279
Joined: 01 Jun 2010, 00:27

Re: vb.net newbie - how do i define and obtain page setup orient

Post by diana »

thank you all

i worked it out...



Dim CurrentOrienation As String
CurrentOrienation = CStr(wordDoc.Document.Application.Selection.PageSetup.Orientation)

diana
3StarLounger
Posts: 279
Joined: 01 Jun 2010, 00:27

Re: vb.net newbie - how do i define and obtain page setup orient

Post by diana »

oops...actually i havent worked it out...i still need a hand pls

the value returned is incorrect
if its portrait the valuereturns '0'
or if its landscape the value returned is '0'

thank you

User avatar
HansV
Administrator
Posts: 78237
Joined: 16 Jan 2010, 00:14
Status: Microsoft MVP
Location: Wageningen, The Netherlands

Re: vb.net newbie - how do i define and obtain page setup orient

Post by HansV »

Are you sure that '0' is returned for Landscape?

How is the variable wordDoc declared and assigned?
Best wishes,
Hans

diana
3StarLounger
Posts: 279
Joined: 01 Jun 2010, 00:27

Re: vb.net newbie - how do i define and obtain page setup orient

Post by diana »

i think my declaration is incorrect..

ive tried both...

Dim currentOrient As Single

currentOrient = wordDoc.Document.Application.Selection.PageSetup.Orientation

currentOrient = CSng(CStr(wordDoc.Document.Application.Selection.PageSetup.Orientation))

MsgBox(currentOrient)



'portrait
If currentOrient = 0 Then

CurrentOrienation = "portrait"

'landscape
ElseIf currentOrient = 1 Then

CurrentOrienation = "landscape"

End If

User avatar
HansV
Administrator
Posts: 78237
Joined: 16 Jan 2010, 00:14
Status: Microsoft MVP
Location: Wageningen, The Netherlands

Re: vb.net newbie - how do i define and obtain page setup orient

Post by HansV »

Does the message box display 0 for both landscape and portrait sections?

Again, how is wordDoc declared and how do you set it?
Best wishes,
Hans

diana
3StarLounger
Posts: 279
Joined: 01 Jun 2010, 00:27

Re: vb.net newbie - how do i define and obtain page setup orient

Post by diana »

yes the message box displays 0 for landscape and 0 for portrait orientation.


i think thats my issue i dont know how to define and declare in vb.net

Public Shared Sub SetAdviceHeading(ByVal adviceheading As AdviceHeading, ByVal wordDoc As WordDocument)

User avatar
HansV
Administrator
Posts: 78237
Joined: 16 Jan 2010, 00:14
Status: Microsoft MVP
Location: Wageningen, The Netherlands

Re: vb.net newbie - how do i define and obtain page setup orient

Post by HansV »

How do you call SetAdviceHeading, i.e. what do you pass as arguments?
Best wishes,
Hans

diana
3StarLounger
Posts: 279
Joined: 01 Jun 2010, 00:27

Re: vb.net newbie - how do i define and obtain page setup orient

Post by diana »

Dim m_documentBaseAdviceHeading As DocumentBaseForAdviceHeading = CType(m_AdvicePart, DocumentBaseForAdviceHeading)

AdviceHeadingController.SetAdviceHeading(m_documentBaseAdviceHeading.AdviceHeading, m_library.ActiveDocument)

User avatar
HansV
Administrator
Posts: 78237
Joined: 16 Jan 2010, 00:14
Status: Microsoft MVP
Location: Wageningen, The Netherlands

Re: vb.net newbie - how do i define and obtain page setup orient

Post by HansV »

Thanks. Does this work?

Dim currentOrient As Int16
currentOrient = wordDoc.Application.Selection.Orientation

You might also try

currentOrient = wordDoc.ActiveWindow.Selection.Orientation
Best wishes,
Hans

diana
3StarLounger
Posts: 279
Joined: 01 Jun 2010, 00:27

Re: vb.net newbie - how do i define and obtain page setup orient

Post by diana »

thanks Hans

Ive tried your suggestion thankyou. I also applied the following...

Dim currentOrient As Int16
Dim currentOrient As Single = Nothing

selection.Collapse(MSWord.WdCollapseDirection.wdCollapseEnd)
currentOrient = wordDoc.Document.Application.Selection.PageSetup.Orientation

For both portrait and landscape returns 0.
do you think its another declaration?

diana
ps. for something that appears so simple is not so :o

User avatar
HansV
Administrator
Posts: 78237
Joined: 16 Jan 2010, 00:14
Status: Microsoft MVP
Location: Wageningen, The Netherlands

Re: vb.net newbie - how do i define and obtain page setup orient

Post by HansV »

currentOrient = wordDoc.Document.Application.Selection.PageSetup.Orientation

doesn't look correct to me, since wordDoc is already a document. I think it should be

currentOrient = wordDoc.Application.Selection.PageSetup.Orientation

And you should not declare currentOrient as a Single, for Orientation is not a floating point value (with decimal places) but a whole number. That's why I suggested declaring it as Int16.

Perhaps it would be easier to develop working code within Word, then convert it to VB.Net. Starting in VB.Net from scratch is harder.
Best wishes,
Hans

diana
3StarLounger
Posts: 279
Joined: 01 Jun 2010, 00:27

Re: vb.net newbie - how do i define and obtain page setup orient

Post by diana »

the following worked....

Dim currentOrient As Int16
selection.Collapse(MSWord.WdCollapseDirection.wdCollapseEnd)
currentOrient = CShort(wordDoc.Document.Application.Selection.PageSetup.Orientation)
MsgBox(currentOrient)

for portrait returns a value of 0
for landscape returns a value of 1

thanks again for your help Hans

ps. your right vb.net is hard
i did create my working code in vba.
when i use the VSS tool "upgrade Visual Basic 6 Code...
the result is it always errors. perhaps im not running the tool right.
then i manually convert my vba code to vb.net - currently it just takes me awhile eg the orientation :scratch: