初心者でもできる!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」を指定することで、特定の範囲や表だけを対象に並べ替えが可能です。

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

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

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

コメント

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