using OfficeExcel = Microsoft.Office.Interop.Excel;
namespace Core.File.Excel
{
/// <summary>
/// ExcelのConnectorアクセサー
/// </summary>
public class ConnectorAccessor : BaseShapeAccessor
{
#region 構築・破棄
/// <summary>
/// コンストラクタ
/// </summary>
/// <param name="shape"></param>
/// <param name="application">ExcelApplicationアクセサー</param>
private ConnectorAccessor(OfficeExcel.Shape shape, ExcelAccessor application)
: base(shape, application)
{
}
/// <summary>
/// 構成子
/// </summary>
/// <param name="shape"></param>
/// <param name="application">ExcelApplicationアクセサー</param>
/// <returns></returns>
internal static ConnectorAccessor GetAccessor(OfficeExcel.Shape shape, ExcelAccessor application)
{
return new ConnectorAccessor(shape, application);
}
#endregion
#region メソッド
/// <summary>
/// コネクタに接続されている図形間で、コネクタの距離が最も短くなるように、コネクタの経路を変更します。
/// </summary>
public void RerouteConnections()
{
Shape.RerouteConnections();
}
#endregion
#region Line
/// <summary>線の先の矢印の形</summary>
public ExcelArrowheadStyle BeginArrowheadStyle
{
get
{
return (ExcelArrowheadStyle)Line.BeginArrowheadStyle;
}
set
{
Line.BeginArrowheadStyle = (MsoArrowheadStyle)value;
}
}
/// <summary>線の先の矢印の形</summary>
public ExcelArrowheadStyle EndArrowheadStyle
{
get
{
return (ExcelArrowheadStyle)Line.EndArrowheadStyle;
}
set
{
Line.EndArrowheadStyle = (MsoArrowheadStyle)value;
}
}
/// <summary>線の矢印の終点部の幅</summary>
public ExcelArrowheadWidth BeginArrowheadWidth
{
get
{
return (ExcelArrowheadWidth)Line.BeginArrowheadWidth;
}
set
{
Line.BeginArrowheadWidth = (MsoArrowheadWidth)value;
}
}
/// <summary>線の矢印の終点部の幅</summary>
public ExcelArrowheadWidth EndArrowheadWidth
{
get
{
return (ExcelArrowheadWidth)Line.EndArrowheadWidth;
}
set
{
Line.EndArrowheadWidth = (MsoArrowheadWidth)value;
}
}
/// <summary>線の矢印の終点部の長さ</summary>
public ExcelArrowheadLength BeginArrowheadLength
{
get
{
return (ExcelArrowheadLength)Line.BeginArrowheadLength;
}
set
{
Line.BeginArrowheadLength = (MsoArrowheadLength)value;
}
}
/// <summary>線の矢印の終点部の長さ</summary>
public ExcelArrowheadLength EndArrowheadLength
{
get
{
return (ExcelArrowheadLength)Line.EndArrowheadLength;
}
set
{
Line.EndArrowheadLength = (MsoArrowheadLength)value;
}
}
#endregion
#region ConnectorFormat
/// <summary>ConnectorFormat</summary>
private OfficeExcel.ConnectorFormat connectorFormat;
/// <summary>ConnectorFormat</summary>
private OfficeExcel.ConnectorFormat ConnectorFormat
{
get
{
if (this.connectorFormat == null)
{
this.connectorFormat = Shape.ConnectorFormat;
ReleaseComObjects.Add(this.connectorFormat);
}
return this.connectorFormat;
}
}
/// <summary>
/// 指定したコネクタの始点を、指定した図形に接続します。
/// </summary>
/// <param name="ConnectedShape">コネクタの始点を接続する図形</param>
/// <param name="ConnectionSite">図形の結合点</param>
public void BeginConnect(ShapeAccessor connectedShape, int connectionSite)
{
ConnectorFormat.BeginConnect(GetShape(connectedShape), connectionSite);
}
/// <summary>
/// 指定したコネクタの終点を、指定した図形に接続します。
/// </summary>
/// <param name="ConnectedShape">コネクタの終点を接続する図形</param>
/// <param name="ConnectionSite">図形の結合点</param>
public void EndConnect(ShapeAccessor connectedShape, int connectionSite)
{
ConnectorFormat.EndConnect(GetShape(connectedShape), connectionSite);
}
#endregion
}
#region 列挙型
/// <summary>コネクタの種類</summary>
public enum ExcelConnectorType
{
/// <summary>曲線コネクタ</summary>
msoConnectorCurve = MsoConnectorType.msoConnectorCurve,
/// <summary>カギ線コネクタ</summary>
msoConnectorElbow = MsoConnectorType.msoConnectorElbow,
/// <summary>直線コネクタ</summary>
msoConnectorStraight = MsoConnectorType.msoConnectorStraight,
/// <summary>値の取得のみ可能です。他の状態の組み合わせを示します。</summary>
msoConnectorTypeMixed = MsoConnectorType.msoConnectorTypeMixed
}
/// <summary>線の先の矢印の形</summary>
public enum ExcelArrowheadStyle
{
/// <summary>ひし形矢印</summary>
ArrowheadDiamond = MsoArrowheadStyle.msoArrowheadDiamond,
/// <summary>矢印なし</summary>
ArrowheadNone = MsoArrowheadStyle.msoArrowheadNone,
/// <summary>開いた矢印</summary>
ArrowheadOpen = MsoArrowheadStyle.msoArrowheadOpen,
/// <summary>円形矢印</summary>
ArrowheadOval = MsoArrowheadStyle.msoArrowheadOval,
/// <summary>鋭い矢印</summary>
ArrowheadStealth = MsoArrowheadStyle.msoArrowheadStealth,
/// <summary>値の取得のみ可能です。他の状態の組み合わせを示します。</summary>
ArrowheadStyleMixed = MsoArrowheadStyle.msoArrowheadStyleMixed,
/// <summary>三角矢印</summary>
ArrowheadTriangle = MsoArrowheadStyle.msoArrowheadTriangle
}
/// <summary>線の矢印の終点部の幅</summary>
public enum ExcelArrowheadWidth
{
/// <summary>小</summary>
ArrowheadNarrow = MsoArrowheadWidth.msoArrowheadNarrow,
/// <summary>大</summary>
ArrowheadWide = MsoArrowheadWidth.msoArrowheadWide,
/// <summary>中</summary>
ArrowheadWidthMedium = MsoArrowheadWidth.msoArrowheadWidthMedium,
/// <summary>値の取得のみ可能です。他の状態の組み合わせを示します。</summary>
ArrowheadWidthMixed = MsoArrowheadWidth.msoArrowheadWidthMixed
}
/// <summary>線の矢印の終点部の長さ</summary>
public enum ExcelArrowheadLength
{
/// <summary>中</summary>
ArrowheadLengthMedium = MsoArrowheadLength.msoArrowheadLengthMedium,
/// <summary>値の取得のみ可能です。指定した図形範囲に他の状態の組み合わせを示します。</summary>
ArrowheadLengthMixed = MsoArrowheadLength.msoArrowheadLengthMixed,
/// <summary>長</summary>
ArrowheadLong = MsoArrowheadLength.msoArrowheadLong,
/// <summary>短</summary>
ArrowheadShort = MsoArrowheadLength.msoArrowheadShort
}
#endregion
}
0 件のコメント:
コメントを投稿