【Word 2007】日本語の単語の途中で改行されない方法を探しています。


文章中に,「この単語(日本語なので英語のようにハイフネーションを無効にすればいいという感じではありません)は行をまたがないでひとカタマリとしておきたい」というキーワードのような単語がいくつも出てきます。Googleで検索してみると,2つ方法を発見しました。

(1) その単語を選択して均等割り付けをデフォルトの文字幅で行う。
(2) 特殊文字[改行なし]を1文字ごとに挿入する。

(2)はどうも面倒ですし,(1)の均等割り付けも,本来の均等割り付けの使い方でないように思うので,Word (2007)の機能で単語の文字列を1つにかためてしまう(結合?)ものがないものかと思いました。

かなり昔使っていた一太郎にはこんな感じの機能があったような気がするのですが,Word 2007でこういった機能がありましたら教えてください。よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2008/01/05 15:06:47
  • 終了:2008/01/10 21:52:21

回答(2件)

id:fuentebella No.1

fuentebella回答回数269ベストアンサー獲得回数302008/01/05 16:59:01

ポイント30pt

Word 2000しか手元にないのですが、2007で試してください。

2)の特殊文字[改行なし]と定型句を組み合わせます。

方法

  • キーワードとなる文字列をwordに打ちます。そして 特殊文字[改行なし]を1文字ごとに挿入します。
  • そして、そのキーワードを選択し、メニュー->挿入->定型句 で追加し、読みをつけます  (特殊文字を含んだ状態で登録されます)

次からにキーワードを文中で打つたびに小さいポップアップが出るので、改行を打つと特殊文字を含んだキーワードに置き換わります。

登録した定型句はテンプレートに保存できます。(ツール->テンプレートとアドイン 構成内容変更の定型句

id:heppokoA

回答ありがとうございます。定型句と組み合わせるアイデアはおもしろそうですね(Word 2007では「文書パーツ」という機能に変わっているようです http://office.microsoft.com/ja-jp/word/HA101746101041.aspx)。

ただ,「キーワードのような単語」と説明させていただいたものがクセモノで,ご教示いただいたように「文書パーツ」に登録して使うのは今回思っている用途ではちょっと登録する数が多くて(しかも文中にたくさん登場するわけでもないのです;),今回に限っては使いにくそうです。すいません。

2008/01/05 17:11:26
id:ardarim No.2

ardarim回答回数892ベストアンサー獲得回数1422008/01/06 13:33:49

ポイント40pt

本来の用途ではないのであまりよろしくはないかもしれませんが、フィールドコード{EQ}を使用することでひとまとめにして途中改行を防げるようです。


簡単なマクロを作ってみましたので、ボタンとして登録すれば選択した文字列を一まとめ/解除できます。

Sub WrapWord()

    Dim t As String
    Dim f As Field
    
    If Selection.Fields.Count = 0 Then
        ' まだフィールドコードが設定されていなければフィールドコードを追加する
        If Selection.Range.Characters.Count > 1 Then
            Set f = Selection.Fields.Add(Selection.Range, wdFieldEmpty, "EQ " & Selection.Text, False)
            t = f.Code.Text
            If Right$(t, 1) = " " Then
                f.Code.Text = Left$(t, Len(t) - 1)
            End If
            f.Select
        End If
    Else
        ' フィールドコード設定済みなので解除する
        For Each f In Selection.Fields
            If Left$(f.Code.Text, 4) = " EQ " Then
                f.Select
                t = f.Code.Text
                f.Delete
                Selection.Range.Text = Right$(t, Len(t) - 4)
                ActiveDocument.Range(Selection.Range.Start, Selection.Range.Start + Len(t) - 4).Select
                Exit For
            End If
        Next f
    End If

End Sub
id:heppokoA

数式用のフィールドなんですね。実際に使ってみておもしろいようにまとまっていきました。ありがとうございます。Ctrl+F9で空のフィールドを挿入して直接「EQ 何々~」と入力するのもありですね。確かに本来の使い方ではないですが,なかなか使えそうです。

2008/01/10 21:49:35
  • id:fuentebella
    選択した文字列の各文字の間に「特殊文字[改行なし]」を入れる 強引なマクロを作ってみました。他の方法がない場合にどうぞ。。
    >>
    Sub grouping()
    Dim i As Integer

    With Selection
    For i = 1 To .Range.Characters.Count - 1
    .Collapse Direction:=wdCollapseStart
    .MoveStart wdCharacter, Count:=1
    .InsertSymbol CharacterNumber:=8205, Unicode:=True, Bias:=0
    Next
    End With

    End Sub
    <<
    キーボートに割り当てれば使いやすいかもしれません。
  • id:heppokoA
    ありがとうございます。やっぱりマクロは強いですね。一瞬で[改行なし]がちりばめられました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません