アプリ版:「スタンプのみでお礼する」機能のリリースについて

四角に文字を入れて中にテキストを入れて
センタリングしてそれを一つのオブジェクトとしたいです。

ーーーーーーー
| 試 験 |
ーーーーーーー 
このような感じで作成して任意の場所に張り付けたいです。
明朝体 20
枠、高さ9.99 幅39.99
左から90 上から20の位置

' 配置関係の書式を設定
Selection.Font.Name = "MS 明朝"
Selection.Font.Size = 20
Selection.Font.Grow
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.Font.Borders(1).LineStyle = wdLineStyleNone
Selection.Shading.ForegroundPatternColor = wdColorAutomatic
Selection.Shading.BackgroundPatternColor = wdColorAutomatic
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0)

Set PIC =ActiveDocument.Shapes.AddShape msoShapeRectangle, 100, 100, 400, 400
with
.RelativeHorizontalPosition = _
wdRelativeHorizontalPositionPage
.RelativeVerticalPosition = _
wdRelativeVerticalPositionPage
.Left = wdShapeCenter
.Top = wdShapeCenter
'.Left = 90
'.Top = 20
End With

よろしくお願いします

A 回答 (4件)

こんにちは


>これが1回でうまく枠に文字が入る方法はわかりませんか?
TextFrame.TextRangeでText設定をします。
ステップ実行などでテキストの変化が分かるように初めに入れてみました

Dim PIC As Shape
Set PIC = ActiveDocument.Shapes.AddShape(msoShapeRectangle, -176.2, -67.95, 100, 46.5)

With PIC
.Fill.ForeColor.RGB = RGB(255, 255, 255)
'.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
'.RelativeVerticalPosition = wdRelativeVerticalPositionParagraph
.Left = 90
.Top = 20
With .Line
.Weight = 2.25
.ForeColor.RGB = vbRed
End With
With .TextFrame.TextRange
.Text = "試 験"
.Font.Borders(1).LineStyle = wdLineStyleNone
.ParagraphFormat.Alignment = wdAlignParagraphCenter
'.Shading.ForegroundPatternColor = wdColorAutomatic
'.Shading.BackgroundPatternColor = wdColorAutomatic
.Font.Name = "MS 明朝"
.Font.Grow
.Font.Size = 20
.Font.ColorIndex = wdRed
End With
End With
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
確認できました。
これでやりたいことができそうです。
ありがとうございました。

お礼日時:2021/12/22 02:04

#2です 補足します



>枠、高さ9.99 幅39.99
>左から90 上から20の位置
Set PIC = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 100, 100, 400, 400)

.Left = wdShapeCenter
.Top = wdShapeCenter
'.Left = 90
'.Top = 20
でポイントで設定します。

>左から90 上から20の位置 についてですが
.Left = wdShapeCenter
.Top = wdShapeCenter
中央に設定してしまっていますので上記を削除するか適正に設定します

>枠、高さ9.99 幅39.99
これミリ?ポイント?
良く分からないので 実際のドキュメントで確認する方法です

手作業でドキュメント上にShapeを作成して、
マクロで出力したい 位置、サイズで作成します。
(ドキュメント上にはShapeは1つだけ作り)下記を実行して
位置、サイズの情報を得てください。

WordShape情報取得コード
Sub sample()
With ActiveDocument.Shapes(1)
Debug.Print "左端から" & .Left & "ポイント" & vbCrLf & _
"上端から" & .Top & "ポイント" & vbCrLf & _
"幅は" & .Width & "ポイント" & vbCrLf & _
"高さは" & .Height & "ポイント"
End With
End Sub
*Debug.Printが良く分からないのであれば、Debug.PrintをMsgBox 
に変更してください。

その情報を基に該当箇所 
AddShape(msoShapeRectangle,Left,Top,Width,Height)

AddShape(msoShapeRectangle, 100, 100, 400, 400)
 又は
.Left =
.Top =
.Left =
.Top =
で設定してください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
四角のイメージはあっており、大きさ等変更できることを確認しました。

1回目ボタンクリック後に枠が表示、しかしその枠に文字が入らず。
枠を選択し、もう1度ボタンを選択するとその中に文字が入り、追加でもう1度枠が作成
これが1回でうまく枠に文字が入る方法はわかりませんか?

Dim PIC As Shape
Set PIC = ActiveDocument.Shapes.AddShape(msoShapeRectangle, -176.2, -67.95, 100, 46.5)
Selection.TypeText Text:="試 験"
With PIC
.Fill.ForeColor.RGB = RGB(255, 255, 255)
.RelativeHorizontalPosition = _
wd・・・
.RelativeVerticalPosition = _
wd・・・
.Left = 90
.Top = 20
With .Line
.Weight = 2.25
.ForeColor.RGB = vbRed
End With
With .TextFrame.TextRange
.Font.Borders(1).LineStyle = wdLineStyleNone
.ParagraphFormat.Alignment = wdAlignParagraphCenter
'.Shading.ForegroundPatternColor = wdColorAutomatic
'.Shading.BackgroundPatternColor = wdColorAutomatic
.Font.Name = "MS 明朝"
.Font.Grow
.Font.Size = 20
.Font.ColorIndex = wdRed
End With
End With
End Sub
文字数制限のため一部省略してます。

お礼日時:2021/12/21 01:30

こんにちは


良く分かりませんが、このような事をしたいと言う事?

Dim PIC As Shape
Set PIC = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 100, 100, 400, 400)
With PIC
.Fill.ForeColor.RGB = RGB(255, 0, 0)
.RelativeHorizontalPosition = _
wdRelativeHorizontalPositionPage
.RelativeVerticalPosition = _
wdRelativeVerticalPositionPage
.Left = wdShapeCenter
.Top = wdShapeCenter
'.Left = 90
'.Top = 20
With .TextFrame.TextRange
'.Font.Borders(1).LineStyle = wdLineStyleNone
.ParagraphFormat.Alignment = wdAlignParagraphCenter
'.Shading.ForegroundPatternColor = wdColorAutomatic
'.Shading.BackgroundPatternColor = wdColorAutomatic
.Font.Name = "MS 明朝"
.Font.Grow
.Font.Size = 20
End With
End With
    • good
    • 0

何を聞きたいのか分からん。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!