Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


56 / 308 ツリー ←次へ | 前へ→

【736】段落について ひかる 13/4/14(日) 17:22 質問[未読]
【738】Re:段落について マナ 13/4/29(月) 16:50 回答[未読]
【742】Re:段落について マナ 13/5/1(水) 13:16 発言[未読]
【749】Re:段落について ひかる 13/5/3(金) 9:51 お礼[未読]

【736】段落について
質問  ひかる  - 13/4/14(日) 17:22 -

引用なし
パスワード
   はじめて質問させていただきます。

word2003を使っています。

以前別の方が質問されていたものを使わせていただき、
段落の頭に連番を挿入し,連番の後に続いている文章に
インデントをかけて体裁を整えるマクロ(下記「現在
マクロ」)を使用しています。
マクロを実行するときれいに文章が揃うのですが、
さらに変更を加えて、以下の(実行前)、(実行後)のように
文頭に「●」の文字がついている文章については、
全体を2文字分ほど前に出し、
文頭に「■」の文字がついている文章については、
連番を付さない。
というようにしたいのですが、うまくいきません。
どなたかご教示いただければと思います。
説明下手でうまくお伝えすることができていない
かもしれませんが、どうぞよろしくお願いいたし
ます。

--------------------------
(実行前)                

最近は、体調が非常にいいで
す。                 
●どのように健康管理をされて
いるのですか。
■塩分や糖分の取りすぎには気
をつけています。
長生きには日々の健康管理が
一番大事だと思います。  

(実行後)                

1   最近は、体調が非常にいいで
    す。                 
2 どのように健康管理をされている
  のですか。
    塩分や糖分の取りすぎには気
    をつけています。
3   長生きには日々の健康管理が
    一番大事だと思います。                 

--------------------------

(現在マクロ)
Sub Macro4()
'
'
  With ListGalleries(wdNumberGallery).ListTemplates(1).ListLevels(1)
    .NumberFormat = "%1"
    .TrailingCharacter = wdTrailingTab
    .NumberStyle = wdListNumberStyleArabic
    .NumberPosition = MillimetersToPoints(6.6)
    .Alignment = wdListLevelAlignRight
    .TextPosition = MillimetersToPoints(22)
    .TabPosition = MillimetersToPoints(22)
    .ResetOnHigher = 0
    .StartAt = 1
    With .Font
      .Bold = wdUndefined
      .Italic = wdUndefined
      .StrikeThrough = wdUndefined
      .Subscript = wdUndefined
      .Superscript = wdUndefined
      .Shadow = wdUndefined
      .Outline = wdUndefined
      .Emboss = wdUndefined
      .Engrave = wdUndefined
      .AllCaps = wdUndefined
      .Hidden = wdUndefined
      .Underline = wdUndefined
      .Color = wdUndefined
      .Size = wdUndefined
      .Animation = wdUndefined
      .DoubleStrikeThrough = wdUndefined
      .Name = ""
    End With
    .LinkedStyle = ""
  End With
  ListGalleries(wdNumberGallery).ListTemplates(1).Name = ""
  Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries( _
    wdNumberGallery).ListTemplates(1), ContinuePreviousList:=False, ApplyTo:= _
    wdListApplyToWholeList, DefaultListBehavior:=wdWord10ListBehavior

End Sub

【738】Re:段落について
回答  マナ  - 13/4/29(月) 16:50 -

引用なし
パスワード
   もう見てない可能性が高いでしょうが、勉強のつもりで書いてみました。
現在のマクロを実行した後に、下記でどうでしょうか。

Sub test()
  Dim p As Paragraph
  
  For Each p In Selection.Paragraphs
    If p.Range.ListFormat.ListString = "●" Then
      p.Range.ListFormat.RemoveNumbers
      p.Range.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries( _
        wdNumberGallery).ListTemplates(1)
      p.Format.TabStops.Add Position:=MillimetersToPoints(10)
    ElseIf p.Range.ListFormat.ListString = "■" Then
      p.Range.ListFormat.RemoveNumbers
      p.LeftIndent = MillimetersToPoints(22)
    End If
  Next
End Sub

【742】Re:段落について
発言  マナ  - 13/5/1(水) 13:16 -

引用なし
パスワード
   1文字目を確認しながら、適用する箇条書きテンプレートを選ぶように修正してみました。
このほうが応用がきくかもしれません。

Sub test2()
  Dim t1 As ListTemplate
  Dim p As Paragraph
  
  Set t1 = ListGalleries(wdNumberGallery).ListTemplates(1)
  
  With t1.ListLevels(1)
    .NumberFormat = "%1"
    .TrailingCharacter = wdTrailingTab
    .NumberStyle = wdListNumberStyleArabic
    .NumberPosition = MillimetersToPoints(6.6)
    .Alignment = wdListLevelAlignRight
    .TextPosition = MillimetersToPoints(22)
    .TabPosition = MillimetersToPoints(22)
    .ResetOnHigher = 0
    .StartAt = 1
  End With
  
  For Each p In Selection.Paragraphs
    If p.Range.Characters.First = "●" Then
      p.Range.ListFormat.ApplyListTemplate _
        ListTemplate:=t1, _
        ContinuePreviousList:=True
      p.Format.TabStops.Add Position:=MillimetersToPoints(10)
    ElseIf p.Range.Characters.First = "■" Then
      p.Range.Characters.First.Delete
      p.LeftIndent = MillimetersToPoints(22)
    Else
      p.Range.ListFormat.ApplyListTemplate _
        ListTemplate:=t1, _
        ContinuePreviousList:=True
    End If
  Next
End Sub

【749】Re:段落について
お礼  ひかる  - 13/5/3(金) 9:51 -

引用なし
パスワード
   ご回答いただきありがとうございました。
方法がわからず停滞しているところでした。
実践してみようと思います。
本当にありがとうございました。

56 / 308 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
207161
(SS)C-BOARD v3.8 is Free