Wordのテキストボックスは、何個までリンクできるんだろう?
Microsoft Wordでテキストボックスのリンクを使う。
Wordに古くからある機能なのですが、一体何処で使うんだろう?と思ってました。
『入学式や卒業式の式辞の蛇腹状に折り畳む用紙に印刷する』というシチュエーションで、ここで使わないでどこで使う?というような絶妙な技であることを思いつきました。後日、関連の記事をUPしようと思います。
こちらの記事では、テキストボックスはいくつまでLINKできるか実験してみた結果を書こうと思います。
テキストボックスを複数用意して、一つのテキストボックスに文章を流し込むことによって、一つ目のテキストボックスから溢れた文字を次のテキストボックスへ、と繋いで行くことが可能です。
いくつまで繋げられるのか実験してみますと、普通のやり方では32個で一杯になることが判明しました。
じゃぁ、33以上のテキストボックスをLINKしたい場合は無理なのかというと、裏技的なやり方があることを発見しました。実際に、249個のテキストボックスのLINKに成功しています。
やり方は、以下の通りです。
テキストボックスに文字を流し込む順番に番号を振って考えます。
先ず、最後の方の 32 個のテキストボックス(218番~249番)について、テキストボックスリンクを作成します。
VBA(マクロ)で書くとこんな感じ。
For i = 218 To 248
ActiveDocument.Shapes(i).TextFrame.Next = ActiveDocument.Shapes(i + 1).TextFrame
Next
次に、218番 の 31 個前の 187番から 218番 までをリンクします。
For i = 187 To 217
ActiveDocument.Shapes(i).TextFrame.Next = ActiveDocument.Shapes(i + 1).TextFrame
Next
以下同様、なので、サブルーチン化して少し整理すると以下の様になります。
Sub リンクコール()
Call リンク実行(218, 249)
Call リンク実行(187, 218)
Call リンク実行(156, 187)
Call リンク実行(125, 156)
Call リンク実行(94, 125)
Call リンク実行(63, 94)
Call リンク実行(32, 63)
Call リンク実行(1, 32)
End Sub
Sub リンク実行(istart, iend)
Dim iend2 As Integer
iend2 = iend - 1
For i = istart To iend2
ActiveDocument.Shapes(i).TextFrame.Next = ActiveDocument.Shapes(i + 1).TextFrame
Next
End Sub
つまり、リンクが32個までしかできないのですが、後ろから 32 ずつリンクを繰り返して行けば1番目のテキストボックスまでたどり着くわけです。
一応できることは分かりましたが、Wordファイルが不安定になりますので、ここま大量のテキストボックスのリンクはお勧めいたしません。
ですが、通常の利用の範囲では結構上限を気にせず使えることは確認できました。
関連記事