当サイトの記事にはプロモーションが含まれています。

初心者でもできる!Word VBAで文書を簡単に並べ替える方法

パソコンパソコン・スマホ教室
スポンサーリンク

Wordで大量の文章やリストを整理したいとき、手作業で並べ替えるのは大変ですよね。そこで活躍するのが「Word VBA(Visual Basic for Applications)」です。今回は、初心者の方でもわかりやすく、VBAを使って文書を並べ替える方法をご紹介します。

スポンサーリンク

VBAって何?

Wordのイメージ

Wordのイメージ

VBAとは、Microsoft Office製品(WordやExcelなど)に組み込まれているプログラミング言語です。これを使うと、普段の操作を自動化したり、複雑な作業を簡単に行ったりすることができます。

例えば、Wordの文書内の段落や表を並べ替えたいとき、VBAを使うと数行のコードで実現できます。

並べ替えの基本Range.Sortメソッド

文書内の段落を並べ替えるには、VBAの「Range.Sort」メソッドを使用します。以下は、その基本的な使い方です。

Sub SortParagraphs()
Dim doc As Document
Set doc = ActiveDocument
doc.Content.Sort SortOrder:=wdSortOrderAscending
End Sub

このコードは、現在の文書(ActiveDocument)の全ての段落を昇順(AからZ)に並べ替えます。

表の並べ替えTable.Sortメソッド

文書内に表がある場合、その表を並べ替えるには「Table.Sort」メソッドを使用します。例えば、1列目のデータを昇順に並べ替える場合、以下のように記述します。

Sub SortTable()
Dim tbl As Table
Set tbl = ActiveDocument.Tables(1)
tbl.Sort ExcludeHeader:=True, FieldNumber:=1, SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending
End Sub

このコードは、文書内の最初の表(Tables(1))の1列目を昇順に並べ替えます。

自然順序での並べ替え

数字を含む文字列を並べ替える際、通常のアルファベット順ではなく、人間が直感的に思う順番(自然順序)で並べ替えたいことがあります。例えば、「Step-1」「Step-10」「Step-2」を並べ替えるとき、通常のアルファベット順では「Step-1」「Step-10」「Step-2」となりますが、自然順序では「Step-1」「Step-2」「Step-10」となります。

このような並べ替えを行うには、VBAで独自のソート関数を作成する必要があります。以下は、その一例です。

Function SortArrayNatural(arr As Variant) As Variant
Dim i As Long, j As Long, temp As Variant
For i = LBound(arr) To UBound(arr)
For j = i + 1 To UBound(arr)
If arr(i) > arr(j) Then
temp = arr(i)
arr(i) = arr(j)
arr(j) = temp
End If
Next j
Next i
SortArrayNatural = arr
End Function

この関数を使用すると、数字を含む文字列を自然順序で並べ替えることができます。

実際に試してみよう!

ここまでのコードを組み合わせて、実際に文書を並べ替えてみましょう。以下は、文書内の段落を自然順序で並べ替える例です。

Sub SortParagraphsNatural()
Dim doc As Document
Dim paragraphs() As String
Dim i As Long
Set doc = ActiveDocument
ReDim paragraphs(doc.Paragraphs.Count - 1)
For i = 1 To doc.Paragraphs.Count
paragraphs(i - 1) = doc.Paragraphs(i).Range.Text
Next i
paragraphs = SortArrayNatural(paragraphs)
doc.Content.Delete
For i = LBound(paragraphs) To UBound(paragraphs)
doc.Content.InsertAfter paragraphs(i) & vbCrLf
Next i
End Sub

このコードは、文書内の段落を自然順序で並べ替え、新しい文書として表示します。

よくある質問

Q1: VBAを使うにはどうすればいいですか?

Wordを開き、「Alt」+「F11」でVBAの編集画面を開きます。新しいモジュールを挿入し、そこにコードを貼り付けて実行できます。

Q2: 並べ替えの順番を逆にするにはどうすればいいですか?

「SortOrder」を「wdSortOrderDescending」に変更することで、降順(ZからA)に並べ替えることができます。

Q3: 特定の段落や表だけを並べ替えるにはどうすればいいですか?

「Range」や「Table」を指定することで、特定の範囲や表だけを対象に並べ替えが可能です。

まとめ

VBAを使うと、Wordでの作業が効率化され、時間を大幅に節約できます。今回ご紹介した方法を試して、ぜひ自分の作業に活用してみてください。

他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました