既定の図形に設定とは?
オートシェイプを右クリックをすると「既定の図形に設定」とコンテキストメニューに表示されます。これは、今クリックしているオートシェイプの色などを既定値として覚えておいて、次に作成するオートシェイプは既定値と同じ設定で作ります、という便利な機能です。
便利な機能ではあるのですが、オートシェイプの設定を変更した上で既定値としなければならないため、どうしても1つはオートシェイプの編集をする必要が出来てきます。
2007以降のExcelのオートシェイプは、初期状態が青色背景で白文字になりますが、使い勝手がよい配色とは言えません。そこで既定値を利用するわけですが、多くの場合は自分なりの使い勝手のよいオートシェイプの書式になると思います。
しかし、フォントの種類、大きさ、色、太さ、などいろいろ設定を新しいブックの度に設定変更した上でそれを既定値としなければならず大変面倒です。そこで、既定値の状態に設定するマクロを以下に紹介します。
ソースコード
以下のマクロは選択したオートシェイプの書式設定を行い、最後に既定値とする内容です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Sub AutoShapeDefault() On Error Resume Next '// 文字色を黒色に設定 Selection.ShapeRange.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 0, 0) '// フォントをMS明朝に設定 Selection.ShapeRange.TextFrame2.TextRange.Font.NameComplexScript = "MS 明朝" Selection.ShapeRange.TextFrame2.TextRange.Font.NameFarEast = "MS 明朝" Selection.ShapeRange.TextFrame2.TextRange.Font.Name = "MS 明朝" '// フォントサイズを9に設定 Selection.ShapeRange.TextFrame2.TextRange.Font.size = 9 '// 背景色を塗りつぶしなしにする Selection.ShapeRange.Fill.Visible = msoFalse '// 枠の色を赤にする Selection.ShapeRange.Line.ForeColor.SchemeColor = 10 '// 枠線を表示する Selection.ShapeRange.Line.Visible = msoTrue '// 枠の太さを設定 Selection.ShapeRange.Line.Weight = 2.25 '// 枠線を表示する Selection.ShapeRange.Line.Visible = msoTrue '// 線の書式設定 Selection.ShapeRange.Line.style = msoLineSingle '// 上記設定を既定値として保持する Selection.ShapeRange.SetShapesDefaultProperties End Sub |
ソースコードの説明
他のマクロと違って、オートシェイプの既定値はちょっと違う面があります。それは、どういう書式を既定値とするのかは人によって異なりますので、あくまでも上記は参考程度になります。処理の内容はソースコードのコメントを参考にしてください。
設定処理はちょっと癖があります。処理の最初の方でフォントの種類を設定していますが、これを後ろの方に持っていくとちゃんと機能しなかったりします。枠の設定よりあとにフォントの設定を行うと、反映されないような動きがどうもあるようです。
他にも、18行目と22行目は全く同じ処理をしているのですが、こう書かないと枠の設定がちゃんと反映されません。Windows Updateで直る、という話を聞いたことがありますが、なんとも言えません。この辺りは実際にコードを書いて試してもらうしかありません。
使い方
最初にオートシェイプを作成します。フォント変更確認用に作成後に文字を入力しています。
そしてそれを選択して、上のマクロを実行します。
そうすると赤枠で塗りつぶしなしでMS明朝の既定値で設定されます。
以降に作成したオートシェイプは既定値の状態で作成されるようになります。