質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

Q&A

解決済

WordVBAでテキストボックスを余白に置きたい

nao-y
nao-y

総合スコア25

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

1回答

0グッド

0クリップ

273閲覧

投稿2022/09/29 08:00

前提

複数ページのあるWord文書に別の文書を付加しようとしています。
付加するのは問題ないのですが、その先頭に「別紙1」という文字を入れると、上部が切れることがあります。
発生したりしなかったりするので、別の方法で対応しようかと思い、そのページだけテキストボックスに「別紙1」と
入れて、上部の余白部分に入れることにしました。

ところが、手作業ではできるのですが、VBAでは、文字を置きたい場所(ヘッダの範囲内)に置くと表示されないのです。

実現したいこと

手作業と同じように、テキストボックスが余白のヘッダ範囲内でも表示されるようにしたい。

該当のソースコード

WordVBA(別紙を付加するところは省略しています)

Private Sub addBesshi()
Dim lt As Long

'上余白を調整 Selection.PageSetup.TopMargin = MillimetersToPoints(30) '左余白を取得 lt = Selection.PageSetup.LeftMargin 'テキストボックスを挿入 ActiveDocument.Shapes.AddTextbox msoTextOrientationHorizontal, lt, 30, 80, 30 'テキストボックスに文字を挿入し、枠線を消す With ActiveDocument.Shapes(ActiveDocument.Shapes.Count) .TextFrame.TextRange.Text = "別紙1" .Line.Visible = msoFalse .ZOrder msoBringToFront .WrapFormat.Type = wdWrapFront End With

End Sub

試したこと

・マクロの記録を使おうとした⇒テキストボックスが動かず、「図形の書式」メニューの関連個所がグレーアウトされる
・「ActiveDocument.Shapes.AddTextbox msoTextOrientationHorizontal, lt, 30, 80, 30 」の最後の数値を大きくするとヘッダ範囲より上の部分にテキストボックスが表示される

補足情報(FW/ツールのバージョンなど)

Word365です。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

0

自己解決

自己解決いたしました。

ActiveDocument.Shapes.AddTextbox msoTextOrientationHorizontal, lt, 30, 80, 30

の第3引数をもっと大きい数(60)にしたところ、解決しました。
引数の意味を勘違いしておりました。失礼いたしました。

考えてくださった方がいらしたらお礼申し上げます。
この場をお借りしたこと、ありがとうございました。

投稿2022/09/30 00:47

nao-y

総合スコア25

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。