Word (VBA)

Word VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Word 2010)
配列のソート
投稿日時: 18/02/14 21:16:05
投稿者: nac

配列というのかどうかはわからないのですが、以下のような1行の文の中でソートをかける方法をおしえてください。
 
123▼234▼122▼354
 
内容()=Split(.range,"▼")からソートできるようなのですが、よろしくお願いします。
 

回答
投稿日時: 18/02/14 22:02:20
投稿者: んなっと

  Dim s As String
  Dim v() As String
  s = "123▼234▼122▼354"
  v = Split(s, "▼")
  WordBasic.SortArray v(), 0 '[0:昇順 1:降順]
  s = Join(v(), "▼")
  MsgBox s

回答
投稿日時: 18/02/15 08:33:32
投稿者: んなっと

複数選択されている段落ごとに並べ替えるなら
 
  Dim Rng As Range
  Dim Para As Paragraph
  Dim v() As String
  Set Rng = Selection.Range
  For Each Para In Rng.Paragraphs
    With Para.Range
      .MoveEnd , -1
      v = Split(.Text, "▼")
      WordBasic.SortArray v(), 0 '[0:昇順 1:降順]
      .Text = Join(v(), "▼")
    End With
  Next

投稿日時: 18/02/16 09:25:34
投稿者: nac

んなっとさん
 
.Text = Join(v(), "▼") がポイントだったようです。
 
ありがとうございました。