【VBAリファレンス】Word作業効率爆上げ!開いている全文書を瞬時に閉じるカスタムショートカットキーの作り方

スポンサーリンク

Wordでの作業は、複数の資料を参照したり、編集したりと、気づけばたくさんの文書が開いていることがありますよね。会議の資料作成、レポートの執筆、あるいは単純な情報収集など、様々な場面でこうした状況は発生します。作業が一通り終わった後、一つずつ「閉じる」ボタンをクリックしていくのは、地味ながらも意外と手間のかかる作業です。特に文書の数が多い場合、その時間は無視できません。

「もっと効率的に、一瞬で開いているすべてのWord文書を閉じたい!」

そう思ったことはありませんか? 実は、Wordには標準で「開いているすべての文書を一度に閉じる」というショートカットキーは用意されていません。しかし、諦める必要はありません! Microsoft Office製品には、マクロ(VBA)という強力な機能があり、これを利用することで、自分だけの便利なショートカットキーを作成することができるのです。

この記事では、WordのVBAを使って、開いているすべての文書を一度に閉じるカスタムショートカットキーを作成する方法を、初心者の方にも分かりやすく、ステップバイステップで解説します。このテクニックを習得すれば、Wordでの作業効率は劇的に向上し、日々の業務が格段にスムーズになるはずです。ぜひ最後までお読みいただき、あなたのWord作業を次のレベルへと引き上げてください。

### なぜカスタムショートカットキーが必要なのか?

Wordで複数の文書を開いている状況は、多岐にわたります。例えば、

* **資料作成:** 複数の参考資料を見ながら一つの文書を作成する。
* **情報収集:** WebサイトやPDFファイルの内容をWord文書にコピー&ペーストする際、参照元となるWord文書を開いたままにする。
* **校正・レビュー:** 複数の関係者から送られてきた修正指示を含む文書を同時に開き、確認する。
* **テンプレート利用:** 複数のテンプレートを開き、内容をコピーして新しい文書を作成する。

これらの作業が終わった後、一つずつ「ファイル」タブから「閉じる」を選択したり、ウィンドウ右上の「×」ボタンをクリックしたりするのは、繰り返すとかなりの時間を浪費します。特に、文書名が似ている場合など、間違った文書を閉じてしまうリスクもゼロではありません。

カスタムショートカットキーを作成することで、これらの手間を一切省くことができます。キーボードショートカットは、マウス操作に比べて指の移動が少なく、画面から目を離す必要もほとんどないため、非常に効率的です。一度設定してしまえば、あとはキーを押すだけで目的の操作が完了します。

### VBA(マクロ)とは?

VBA(Visual Basic for Applications)は、Microsoft Officeアプリケーション(Word, Excel, PowerPoint, Accessなど)に組み込まれているプログラミング言語です。VBAを使うことで、Officeアプリケーションの機能を拡張したり、定型的な作業を自動化したりすることができます。

「プログラミング」と聞くと難しく感じるかもしれませんが、今回ご紹介するコードは非常にシンプルで、コピペで簡単に実装できます。複雑な知識は一切不要ですので、ご安心ください。

### 開いている全文書を閉じるVBAコード

それでは、実際に開いているすべてのWord文書を閉じるためのVBAコードを見てみましょう。

Sub CloseAllDocuments()
Dim doc As Document

‘ 開いている文書が1つ以上あるか確認
If Documents.Count > 0 Then
‘ すべての文書を閉じる
For Each doc In Documents
doc.Close SaveChanges:=wdPromptForSaveChanges ‘ 保存するかどうかの確認を促す
Next doc
Else
MsgBox “現在開いているWord文書はありません。”, vbInformation
End If
End Sub

このコードは、以下の処理を行っています。

1. **`Sub CloseAllDocuments()`**: `CloseAllDocuments` という名前のマクロ(サブルーチン)の開始を宣言しています。
2. **`Dim doc As Document`**: `doc` という名前の変数を宣言しています。この変数は、開いている各文書を一時的に格納するために使用します。
3. **`If Documents.Count > 0 Then`**: 現在開いているWord文書の数が0より大きい(つまり、少なくとも1つ以上の文書が開いている)かどうかを判定しています。
4. **`For Each doc In Documents`**: 開いているすべての文書に対して、繰り返し処理を行います。ループの各回で、`doc` 変数には開いている文書の一つが順番に代入されます。
5. **`doc.Close SaveChanges:=wdPromptForSaveChanges`**: 現在 `doc` 変数に格納されている文書を閉じます。
* `SaveChanges:=wdPromptForSaveChanges` という部分は、文書に変更が加えられていた場合に、「保存しますか?」といった確認メッセージを表示させるための設定です。これにより、意図せず変更内容を失うことを防ぎます。
* もし、変更があっても自動的に保存したい場合は `SaveChanges:=wdSaveChanges` に、変更があっても保存せずに強制的に閉じたい場合は `SaveChanges:=wdDoNotSaveChanges` に変更することも可能です。今回は、安全のために `wdPromptForSaveChanges` を使用します。
6. **`Next doc`**: `For Each` ループの次の文書に進みます。
7. **`Else`**: もし `If` 文の条件(開いている文書が0より大きい)が満たされなかった場合(つまり、文書が開かれていない場合)に実行されます。
8. **`MsgBox “現在開いているWord文書はありません。”, vbInformation`**: 「現在開いているWord文書はありません。」というメッセージボックスを表示します。`vbInformation` は、情報を示すアイコンを表示するための定数です。
9. **`End If`**: `If` 文の終了を宣言します。
10. **`End Sub`**: マクロの終了を宣言します。

### VBAコードをWordに実装する手順

このVBAコードをWordに実装し、ショートカットキーとして使えるようにする手順は以下の通りです。

#### ステップ 1: VBAエディターを開く

1. Wordを開きます。
2. キーボードで `Alt` + `F11` キーを同時に押します。
* これでVBAエディター(Microsoft Visual Basic for Applications)が開きます。

#### ステップ 2: 標準モジュールを挿入する

1. VBAエディターのメニューバーにある「挿入」をクリックします。
2. ドロップダウンメニューから「標準モジュール」を選択します。
* これにより、コードを記述するための白い画面(モジュールウィンドウ)が表示されます。

#### ステップ 3: VBAコードを貼り付ける

1. 先ほど紹介したVBAコードをコピーします。
2. VBAエディターのモジュールウィンドウに、コピーしたコードを貼り付けます。

Sub CloseAllDocuments()
Dim doc As Document

If Documents.Count > 0 Then
For Each doc In Documents
doc.Close SaveChanges:=wdPromptForSaveChanges
Next doc
Else
MsgBox “現在開いているWord文書はありません。”, vbInformation
End If
End Sub

#### ステップ 4: VBAエディターを閉じる

1. VBAエディターの右上の「×」ボタンをクリックして閉じます。

#### ステップ 5: マクロを保存する

1. Wordの「ファイル」タブをクリックします。
2. 「名前を付けて保存」を選択します。
3. 保存場所を指定します。通常は「参照」をクリックして、任意の場所を選びます。(例:「ドキュメント」など)
4. 「ファイルの種類」のドロップダウンリストから、「Word マクロ有効文書 (*.docm)」を選択します。**ここが非常に重要です!** 通常の `.docx` ファイルではマクロは保存されません。
5. 「ファイル名」を分かりやすいもの(例:「Wordマクロ集」など)に変更します。
6. 「保存」ボタンをクリックします。

#### ステップ 6: カスタムショートカットキーを割り当てる

1. Wordの「ファイル」タブをクリックします。
2. 「オプション」を選択します。
3. 「Wordのオプション」ウィンドウが開いたら、左側のメニューから「リボンのユーザー設定」を選択します。
4. ウィンドウ右下にある「ユーザー設定」ボタンの隣にある「キーボード:ユーザー設定」ボタンをクリックします。
5. 「Word のオプション」ダイアログボックスの「キーボードのユーザー設定」タブが開きます。
6. 「分類」リストから「マクロ」を選択します。
7. 「マクロ」リストに、先ほど作成したマクロ名「`CloseAllDocuments`」が表示されているはずです。それをクリックして選択します。
8. 「新しいショートカットキー」ボックスに、割り当てたいショートカットキーを入力します。
* 例えば、`Ctrl` + `Shift` + `W` を割り当てたい場合は、`Ctrl` キー、`Shift` キーを押しながら、`W` キーを押します。入力ボックスに `Ctrl+Shift+W` のように表示されます。
* **注意点:** 既存のショートカットキーと重複しないように注意してください。もし重複すると、既存のショートカットキーが上書きされてしまいます。Wordでよく使うショートカットキー(例: `Ctrl+C`, `Ctrl+V` など)は避けるのが賢明です。
* 「現在の割り当て」に何か表示されている場合は、そのショートカットキーは既に別の機能に割り当てられています。
9. 「割り当て」ボタンをクリックします。
10. 「OK」ボタンをクリックして、「Word のオプション」ダイアログボックスを閉じます。
11. 「Word のオプション」ウィンドウも「OK」ボタンをクリックして閉じます。

これで、カスタムショートカットキーの設定は完了です!

### 実際に使ってみましょう!

Wordで複数の文書を開いた状態で、先ほど設定したショートカットキー(例: `Ctrl` + `Shift` + `W`)を押してみてください。

* もし変更が保存されていない文書があれば、「保存しますか?」という確認メッセージが表示されます。
* 「保存」を選択すれば保存されて閉じ、「保存しない」を選択すれば保存せずに閉じ、「キャンセル」を選択すれば閉じずに済みます。
* 変更がない文書や、保存を選択した文書は、すべて一瞬で閉じられるはずです。
* もし文書が開かれていない状態でショートカットキーを押すと、「現在開いているWord文書はありません。」というメッセージが表示されます。

この手軽さ、ぜひ体感してみてください。

### 応用:保存せずにすべて閉じるショートカットキー

もし、変更があっても毎回確認せずに、とにかくすべて閉じてしまいたい、という場合は、VBAコードの `doc.Close SaveChanges:=wdPromptForSaveChanges` の部分を `doc.Close SaveChanges:=wdDoNotSaveChanges` に変更してください。

Sub CloseAllDocumentsWithoutSaving()
Dim doc As Document

If Documents.Count > 0 Then
For Each doc In Documents
doc.Close SaveChanges:=wdDoNotSaveChanges ‘ 保存せずに強制的に閉じる
Next doc
Else
MsgBox “現在開いているWord文書はありません。”, vbInformation
End If
End Sub

このコードを新しいマクロとして(あるいは既存のマクロを書き換えて)実装し、別のショートカットキーを割り当てれば、「保存確認なしで一気に閉じる」ショートカットキーが完成します。ただし、この設定は変更内容を失うリスクがあるため、使用する際は十分注意してください。

### まとめ

この記事では、Wordで開いているすべての文書を一度に閉じるカスタムショートカットキーを作成する方法を、VBAコードの実装からショートカットキーの割り当てまで、丁寧に解説しました。

* 標準機能にはない便利なショートカットキーを、VBAを使って自作できること。
* VBAコードはシンプルで、コピペで実装できること。
* マクロ有効文書 (`.docm`) として保存することの重要性。
* ショートカットキーの割り当て方法。

これらのポイントを理解し、実践することで、あなたのWord作業は格段に効率化されるはずです。複数の文書を頻繁に扱う方にとっては、まさに「作業効率爆上げ」と言えるでしょう。

ぜひこのテクニックを習得して、日々のWord作業をより快適に、そして効率的に進めていきましょう。もし不明な点があれば、お気軽にご質問ください。

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