PowerPoint (一般・VBA)

PowerPoint 一般・VBAに関する話題を扱うフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : PowerPoint 2016)
TextBox内文字列をセンタリングしたい。
投稿日時: 20/01/09 10:12:01
投稿者: gorby

某RPAツールを使い、PowerpointVBAで、下記変数str_textに入った文字列をTextBoxに入れて、Powerpointに転記するコードを下記の通り書きました。
TextBoxの中で文字列をセンタリングしたいのですが、どのようなコードを追加すれば良いでしょうか?
 
--<Start of code>----
objPpt.Visible = True
 
Set targetPptObj = objPpt.ActivePresentation
 
Set text = targetPptObj.Slides(num_slide).Shapes.AddTextbox(1,x, y, w, h)
 text.TextFrame.TextRange.Text = str_text
 text.TextEffect.FontName = Arial
 text.TextEffect.FontSize = 20
--<End of code>----

回答
投稿日時: 20/01/09 16:12:55
投稿者: sk

引用:
TextBoxの中で文字列をセンタリング

引用:
text.TextFrame.TextRange.Text = str_text
text.TextEffect.FontName = Arial
text.TextEffect.FontSize = 20

With text.TextFrame2.TextRange
    .Text = str_text
    .ParagraphFormat.Alignment = msoAlignCenter
    .Font.Name = "Arial"
    .Font.Size = 20
End With
 
----------------------------------------------------------------
 
以上のように、段落書式の Alignment プロパティを設定なさればよろしいかと。

投稿日時: 20/01/10 16:45:49
投稿者: gorby

sk さんの引用:
引用:
TextBoxの中で文字列をセンタリング

引用:
text.TextFrame.TextRange.Text = str_text
text.TextEffect.FontName = Arial
text.TextEffect.FontSize = 20

With text.TextFrame2.TextRange
    .Text = str_text
    .ParagraphFormat.Alignment = msoAlignCenter
    .Font.Name = "Arial"
    .Font.Size = 20
End With
 
----------------------------------------------------------------
 
以上のように、段落書式の Alignment プロパティを設定なさればよろしいかと。

ありがとうございます。時間ができたら試してみたいとおもいます。

投稿日時: 20/01/29 16:51:06
投稿者: gorby

sk さんの引用:
引用:
TextBoxの中で文字列をセンタリング

引用:
text.TextFrame.TextRange.Text = str_text
text.TextEffect.FontName = Arial
text.TextEffect.FontSize = 20

With text.TextFrame2.TextRange
    .Text = str_text
    .ParagraphFormat.Alignment = msoAlignCenter
    .Font.Name = "Arial"
    .Font.Size = 20
End With
 
----------------------------------------------------------------
 
以上のように、段落書式の Alignment プロパティを設定なさればよろしいかと。

 
 
すみません。上記のWith文をそのままコピペしたらうまく動きませんでした。
 
 text.TextFrame.TextRange.Text = str_text
 text.TextEffect.FontName = Arial
 text.TextEffect.FontSize = 20
 
 
コードの一部ですが、上記の3行を追記すると、 変数str_textに格納された文字列が正しく、Arialのフォントで20ポイントでPowerpointに転記できたので、同じフォーマット(text.TextEffect.から始まる?)で、センタリングの書き方をご教示いただけないでしょうか?

回答
投稿日時: 20/01/29 17:58:39
投稿者: sk

引用:
上記のWith文をそのままコピペしたらうまく動きませんでした。

引用:
With text.TextFrame2.TextRange
    .Text = str_text
    .ParagraphFormat.Alignment = msoAlignCenter
    .Font.Name = "Arial"
    .Font.Size = 20
End With

PowerPoint 上でそのコードを実行しているのではなく、
PowerPoint 以外のアプリケーションでコードを実行しているので
msoAlignCenter が Office ライブラリの定数として認識されておらず
(暗黙的な変数として解釈されているか、コンパイルエラーが発生している)、
Alignment プロパティに対して値が正しく設定されていないから
ではないでしょうか。
 
その場合は msoAlignCenter ではなく 2 を
Alignment プロパティに渡して下さい。
 
引用:
Arialのフォントで20ポイントでPowerpointに転記できたので、
同じフォーマット(text.TextEffect.から始まる?)で、
センタリングの書き方をご教示いただけないでしょうか?

TextEffect オブジェクトに「文字配置」を設定するためのプロパティは
ありません。
( TextRange オブジェクトとは役割が違います)

投稿日時: 20/01/31 11:52:36
投稿者: gorby

sk さんの引用:
引用:
上記のWith文をそのままコピペしたらうまく動きませんでした。

引用:
With text.TextFrame2.TextRange
    .Text = str_text
    .ParagraphFormat.Alignment = msoAlignCenter
    .Font.Name = "Arial"
    .Font.Size = 20
End With

PowerPoint 上でそのコードを実行しているのではなく、
PowerPoint 以外のアプリケーションでコードを実行しているので
msoAlignCenter が Office ライブラリの定数として認識されておらず
(暗黙的な変数として解釈されているか、コンパイルエラーが発生している)、
Alignment プロパティに対して値が正しく設定されていないから
ではないでしょうか。
 
その場合は msoAlignCenter ではなく 2 を
Alignment プロパティに渡して下さい。
 
引用:
Arialのフォントで20ポイントでPowerpointに転記できたので、
同じフォーマット(text.TextEffect.から始まる?)で、
センタリングの書き方をご教示いただけないでしょうか?

TextEffect オブジェクトに「文字配置」を設定するためのプロパティは
ありません。
( TextRange オブジェクトとは役割が違います)

 
時間がないため、まだ試していませんが、ご教示ありがとうございます。