クイックアクセスツールバーのアイコンを自由に変更する方法


# クイックアクセスツールバーとは？
カスタマイズ可能なツールバーのことです。
このツールバーには、よく使うプログラムやファイルに素早くアクセスするためのショートカットアイコンを配置できます。
デフォルトでは、クイックアクセスツールバーには「上書き保存」や「元に戻す」などの標準的なアイコンが含まれていますが、自分でアイコンを追加、削除、並べ替えることができます。
クイックアクセスツールバーは、作業効率を高めるために非常に便利な機能であり、多くのユーザーに利用されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/93ccde2f-ec60-5789-4bb3-efa47d1f5f4f.png)


# クイックアクセスツールバーをカスタマイズする
クイックアクセスツールバーに自分の好きな機能を登録するには、いくつかの方法があります。

リボンのメニューから右クリックして追加する方法もありますし、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/6c5551de-c1eb-567e-1007-d43990f55d11.png)

クイックアクセスツールバーを右クリックしたり、オプションから開いたりして、詳細にカスタマイズすることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/a3cebdbb-9376-f1b7-e3bf-74a6aa1a3c48.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/b91ed0c6-31fb-ebda-6532-1f0c098c7aec.png)

# クイックアクセスツールバーのアイコン
ほとんどのボタンにアイコンが設定されていますが、時折アイコンが設定されていない機能があります。
アイコンのない機能を登録すると、すべて同じ丸印のアイコンが表示されてしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/43f43af8-5512-758b-7217-a6e97a926f1d.png)

登録している項目が多くなるとボタンが隠れてしまい、クイックにアクセスすることができなくなってしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/91181094-798a-f512-edbf-e6a7db62eeab.png)

ラベルの表示をOFFにすることでスペースを縮めて、表示されるボタンを増やすことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/9851abdf-e038-56f7-3418-761e6dc9235b.png)

しかし、その場合は、アイコンが設定されていないとわかりづらくなってしまうという欠点があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/3f0a8d91-ad87-5af0-810e-a3def441834f.png)

自分で作成したマクロなどは、[変更]からアイコンを設定することが可能ですが、標準的な機能では[変更]がグレーアウトしており、アイコンを設定することができません。
- マクロは変更できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/44ca3db2-1d13-4f32-4d06-02314ebdfe75.png)
- 標準機能は変更できない
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/253eb4f1-05b6-30c3-5853-06202b144808.png)

前置きが長くなりましたが、この記事はそんな標準機能のアイコンを自由に設定する方法についてお話します。

# カスタマイズしたクイックアクセスツールバーの保存先
既定ではカスタマイズした情報は以下の場所に格納されています。

> C:\Users\\{プロファイル}\AppData\Local\Microsoft\Office\
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/1223700b-d9dc-6fe0-ff2f-41458d65d4da.png)

大まかにファイル名と対応するアプリの一覧表を作成しました。
Outlookは画面によってクイックアクセスツールバーの設定が分かれているので、複数の設定ファイルがあります。
|アプリ|画面|ファイル名|
|:-----|:-----|:-----|
|Access|共通|Access.officeUI|
|Excel|共通|Excel.officeUI|
|OneNote|共通|OneNote.officeUI|
|PowerPoint|共通|PowerPoint.officeUI|
|Visio|共通|Visio.officeUI|
|Word|共通|Word.officeUI|
|Outlook|エクスプローラー|olkexplorer.officeUI|
|Outlook|受信メール|olkmailread.officeUI|
|Outlook|メールの作成|olkmailitem.officeUI|
|Outlook|会議・予定表アイテム|olkapptitem.officeUI|
|Outlook|タスクアイテム|olktaskitem.officeUI|
|Outlook|連絡先|olkaddritem.officeUI|
|Outlook|連絡先グループ|olkdlstitem.officeUI|

バージョンが古そうですが、こちらのページにさらに詳しい一覧がありました。

https://communities596.rssing.com/chan-8425615/article158403.html


# 設定ファイルを直接編集する

このofficeUIファイルをメモ帳などのテキストエディタで開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/4a25a7f9-c623-0d71-bfd5-bad2fb16bb43.png)

XMLで記述されており、成形するとこんな感じです。

```XML:olkexplorer.officeUI
<mso:customUI xmlns:msox="http://schemas.microsoft.com/office/2006/01/customui/special" xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui">
  <mso:ribbon>
    <mso:qat>
      <mso:sharedControls>
        <mso:control idQ="mso:FilePrint" visible="false"/>
        <mso:control idQ="mso:FileSaveAs" visible="false"/>
        <mso:control idQ="mso:UpdateFolder" visible="false" insertBeforeQ="mso:SendReceiveAll"/>
        <mso:control idQ="mso:Reply" visible="false" insertBeforeQ="mso:SendReceiveAll"/>
        <mso:control idQ="mso:ReplyAll" visible="false" insertBeforeQ="mso:SendReceiveAll"/>
        <mso:control idQ="mso:Forward" visible="false" insertBeforeQ="mso:SendReceiveAll"/>
        <mso:control idQ="mso:Delete" visible="false" insertBeforeQ="mso:SendReceiveAll"/>
        <mso:control idQ="mso:EmptyTrash" visible="false" insertBeforeQ="mso:SendReceiveAll"/>
        <mso:control idQ="mso:PointerModeOptions" visible="false" insertBeforeQ="mso:SendReceiveAll"/>
        <mso:control idQ="mso:FindContactCombo" visible="false" insertBeforeQ="mso:SendReceiveAll"/>
        <mso:control idQ="mso:MinimizeRibbon" visible="false" insertBeforeQ="mso:SendReceiveAll"/>
        <mso:control idQ="mso:MarkAsRead" visible="true" insertBeforeQ="mso:SendReceiveAll"/>
        <mso:control idQ="mso:MarkAllAsRead" visible="true" insertBeforeQ="mso:SendReceiveAll"/>
        <mso:control idQ="mso:SendReceiveAll" visible="false"/>
        <mso:control idQ="mso:Undo" visible="false"/>
        <mso:separator idQ="msox:sep1" visible="true"/>
        <mso:control idQ="mso:CollapseAllGroups" visible="true" imageMso="OutlineMoveUp"/>
        <mso:control idQ="mso:ExpandAllGroups" visible="true" imageMso="OutlineMoveDown"/>
        <mso:separator idQ="msox:sep2" visible="true"/>
        <mso:control idQ="mso:SaveAttachments" visible="true"/>
        <mso:control idQ="mso:SaveAllAttachmentsToCloudMenu" visible="true"/>
        <mso:control idQ="mso:ClearAllCategories" visible="true"/>
      </mso:sharedControls>
    </mso:qat>
  </mso:ribbon>
</mso:customUI> 
```
[【WEBツール】XML フォーマット（整形）](https://www.oh-benri-tools.com/tools/programming/xml-fomatter)

このXMLファイルを編集することでアイコンをカスタマイズします。
今回はアイコンのない「すべての分類項目をクリア」にアイコンを追加したいので、この行を編集します。
```XML:olkexplorer.officeUI
<mso:control idQ="mso:ClearAllCategories" visible="true"/>
```
「*ClearAllCategories*」という英名からも判断できますし、XMLの並び順で判断することもできます。
クイックアクセスツールバーに自分が設定した順に、XMLも同じ順序で並んでいるので、`<mso:control `から始まる行を後ろから数えていくことでも特定できます。

:::note warn
注意
表示していない既定の項目、例えば「印刷」なども`visible="false"`で記述されているので、前から数えると数が合わなくなります。
```XML:表示していない「印刷」をあらわす項目
<mso:control idQ="mso:FilePrint" visible="false"/>
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/51f2180c-dc65-9e11-316f-1c1c20a99c6f.png)

:::


*****

この「すべての分類項目をクリア」の行に、アイコンの情報を足すとこうなります。
```XML:olkexplorer.officeUI
<mso:control idQ="mso:ClearAllCategories" visible="true" imageMso="EraserMode"/>
```
末尾に追加された属性、`imageMso="EraserMode"`がアイコンの情報です。
アイコンは**imageMso**で定義されています。

https://www.ka-net.org/blog/?p=11351

上記のようにofficeUIファイルをテキストエディタで編集し、設定ファイルを上書き保存して閉じます。
Outlookアプリを一度終了させ、開きなおすと設定が反映されたことが確認できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/d9950034-bde5-7d8f-c328-d5cc65c53e43.png)

解説は以上です。