Ronは、ワークシート内の物を強調するためにShapes(実際には楕円形)をよく使用します。彼は図形を追加してサイズを変更し、次に図形の色を赤に変更し、塗りつぶしの色を削除して、実際に強調表示しようとしているものが不明瞭にならないようにする必要があります。彼はこれらのステップをかなり頻繁に実行し、これがどういうわけかマクロで高速化される可能性があることは間違いありませんが、彼はそれをどのように実行するかがわかりません。

マクロベースのソリューションを検討する前に、マクロを必要としないソリューションを検討することをお勧めします。たとえば、楕円形(必要に応じてフォーマットされたもの)を作成して右クリックすると、デフォルトの形状として設定できます。これにより、将来、ワークブックへの図形の追加を高速化できます。

サイズと色がそれぞれ異なる複数の図形がある場合は、それらの図形を別のブックにコピーするだけでよい場合があります。そのブックはそれらの図形の「ホルダー」になる可能性があるため、必要に応じて他のブックにコピーして戻すことができます。これは、何年にもわたって使用できる標準的な形状の独自のギャラリーを構築するための優れた方法です。

マクロが最善の方法であると判断した場合は、マクロを使用して楕円を追加するのは比較的簡単です。これは非常に単純なものです:

Sub Custom_Oval1()

ActiveSheet.Shapes.AddShape(msoShapeOval, 150, 150, _       120, 60).Select     Selection.ShapeRange.Fill.Visible = msoFalse     With Selection.ShapeRange.Line         .DashStyle = msoLineSolid         .Weight = 3         .Visible = msoTrue         .ForeColor.RGB = RGB(255, 0, 0)

.Transparency = 0     End With End Sub

これにより、ワークシートの1つの場所に、目的の色、塗りつぶし、透明度の標準的な楕円が挿入されます。完了すると、形状が選択されたままになり、楕円を目的の場所にドラッグして、必要に応じてサイズを調整できます。

楕円を目的の場所に近づけたい場合は、ワークシートのアクティブセルを確認し、セルの高さと幅に合わせてサイズを変更して、そのセルの周囲に楕円を配置するバリエーションを使用できます。

Sub Custom_Oval2()

Dim lLeft As Long     Dim lTop As Long     Dim lWidth As Long     Dim lHeight As Long

lLeft = ActiveCell.Left - 5     lWidth = ActiveCell.Width + 5     lTop = ActiveCell.Top     lHeight = ActiveCell.Height + 5

ActiveSheet.Shapes.AddShape(msoShapeOval, lLeft, _       lTop, lWidth, lHeight).Select     Selection.ShapeRange.Fill.Visible = msoFalse     With Selection.ShapeRange.Line         .DashStyle = msoLineSolid         .Weight = 3         .Visible = msoTrue         .ForeColor.RGB = RGB(255, 0, 0)

.Transparency = 0     End With End Sub

マクロのこのバリエーションは、ActiveCellオブジェクトの場所に基づいて形状の場所を決定することに注意してください。必要に応じて、ActiveCellのすべてのオカレンスをSelectionに変更できます。これにより、単にアクティブセルではなく、選択範囲を囲むように楕円のサイズを調整できます。また、楕円形のフィット感を高めるために、左、幅、高さの値がわずかに調整されていることにも注意してください。さまざまな調整値を試して、必要な外観を得ることができます。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(4631)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。