はじめに
エクセルの図形(オートシェイプ)は、デフォルトの状態では「青地」に「白文字」で、ちょっと使いずらい配色です。
初期設定で変えられると良いのですが、残念ながらエクセルにそのような機能は無いようです。
皆さんも自分の好みの書式に変更してから、「規定の図形に設定」を行っていることでしょう。
でも、この作業は異なるファイルを開く度に、毎回行う必要があるのです。正直なところ面倒くさいです。
この記事では、VBAマクロとアドイン機能を使って、瞬時に図形の書式を設定する方法を紹介します。
まずは、簡単だけどイマイチな方法を紹介します。そのあとで、本命のやり方を説明します。
目次
イマイチな方法
やらないよりは、やったほうが良いけれど。
もっと楽な方法はないの? と思ってしまうやり方を2つ紹介します。
方法1:右クリックして規定の図形に設定する
「はじめに」で触れたように「規定の図形に設定」を使うやり方です。
図形を目的の書式に変更した後、右クリックして「規定の図形に設定」を選びます。
これ以降、図形を挿入すると設定した書式で図形が作成できます。
お手軽かつ実用的な方法です。
ですが、設定を保存したファイルにのみ有効なので、新たにファイルを開くたびに設定しなければなりません。
よって、時短の効果は低いと言わざるを得ません。
マクロを作ってアドインに登録して使う
本命の方法です。
図形の書式設定を行うマクロを作成し、そのマクロをアドインとして登録します。
アドインは設定を行ったPC上のエクセルで有効となるため、いちど設定を行いさえすればその後は恒久的に利用できます。
マクロを作る(.xlsm)
エクセルマクロファイル(.xlsm)を新規作成し、下記のサンプルコードをVBAの標準モジュールに貼り付けてください。
Sub ローカル設定_書式の設定() ' ' Macro1 Macro ' On Error Resume Next 'オートシェイプ本体の色→ 白色塗り潰しにする With Selection.ShapeRange.Fill .Visible = msoTrue .ForeColor.ObjectThemeColor = msoThemeColorBackground1 .ForeColor.TintAndShade = 0 .ForeColor.Brightness = 0 .Transparency = 0 .Solid End With '枠線の設定(色)→ 赤色にする With Selection.ShapeRange.Line .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 End With '枠線の設定(太さ)→ 0.75にする With Selection.ShapeRange.Line .Visible = msoTrue .Weight = 0.75 End With '文字色の設定→ 赤色にする With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 .Solid End With '上記設定を既定値として保持する Selection.ShapeRange.SetShapesDefaultProperties End Sub
サンプルでは設定項目が足りない! という方は、「マクロの記録」を使って、独自の項目設定コードを作成して差し替えてください。
komekichix.hatenablog.com
動作確認
適当なオートシェイプを挿入します。
オートシェイプを選択してから、マクロを実行します。なお、動作確認の際には on error resume の行をコメントアウトしておくと、問題箇所でエラーで処理が中断するため間違い箇所を見つけやすいです。
エラーが発生しなくなって下記の条件をクリアできればマクロの作成は完了です。
2.新しく図形を挿入した際に、目的の書式で作成されること。
アドインファイルで保存する (.xlam)
マクロが正しく動作することが確認出来たら、アドインファイルとして保存を行います。
「名前をつけて保存」で、ファイルの種類を「Excelアドイン(*.xlam)」として保存します。ここでは、「ローカル設定_書式の設定.xlam」として保存しています。
Excelアドインファイルは、通常のエクセルファイルとは異なり、そのPCで定められている場所に保存されます。
デフォルトの保存先は以下です。次項のアドイン一覧で確認できます。
アドインの確認、有効化
アドインが正しく保存されているかを確認します。まずは、エクセルを起動します。
「ファイル」-「アドイン」を選択します。
一覧に、前項で保存したファイルが登録されていることを確認します。
管理:Excelアドインの横の設定ボタンを押します。そして、「ローカル設定_書式の設定」チェックボックスをオンにします。
「ローカル設定_書式の設定」が「アクティブなアプリケーション アドイン」へ移動します。これで、アドインの有効化は完了です。
リボン(ツールバー)に登録する
作ったアドインを実行するためのボタンをリボンに登録します。
「ファイル」-「リボンのユーザー設定」を選択します。
「新しいタブ」ボタンでタブが作られます。▲▼で好きな位置に移動しましょう。
「新しいグループ(ユーザー設定)」を選択します。
左側の枠で、「コマンドの選択」からマクロを選びます。→マクロ名が表示されます。
マクロ名を選択して、「追加」ボタンを押します。
OKボタンを押します。
これで登録完了です。
完成
正しく動作するか、試してみましょう。
図形を挿入します。
図形を選択して、「新しいタブ」-「ローカル設定_書式の設定」を選択します。
書式が変わりました。
そして、新たに挿入した図形も目的の書式になっています。
おわりに
これまで、何年間も図形の書式変更をやり続けて来ました。
どれだけの時間的リソースを消費したことでしょうか。
書式設定1回につき20秒かかり、1日3ファイルを開くとすれば、1日につき60秒です。
1週間で5分、1ヶ月にして20分、年間では240分、すなわち4時間。
なんと、1年間で半日も思考を停止し、書式の設定だけに時間を費やしていたことになります。
このアドインを使えば、そんな思考停止状態ともおさらばです。
無駄を無くして、限られた時間を有意義なことに使おうではありませんか。
なお、この仕組みの実現に当たっては、こちらのサイトにお世話になりました。ありがとうございます。
【VBAでオートシェイプの既定設定を行う】
https://vbabeginner.net/make-default-settings-for-autoshape/
【自作したVBAをアドインにして使う方法】
https://qiita.com/comugi/items/21dfc8baf1666e239536
以上です。