OfficeScripts(オフィススクリプト)で図形オブジェクトの操作方法をまとめて紹介します。
図形オブジェクトの追加・削除・塗りつぶしなどの色変更について解説します。

スクリプト内のシート名や変数名は例が入っていますので状況に応じて変更して使用してください。
目次
図形の追加・取得
まずは図形の追加方法について紹介します。
図形の追加
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
const sheet = workbook.getActiveWorksheet();
// 図形を追加
const shape = sheet.addGeometricShape(ExcelScript.GeometricShapeType.rectangle); //四角形
}



ExcelScript.GeometricShapeTypeを変えることでいろいろな図形を追加できます。
ExcelScript.GeometricShapeType.rectangle
:四角形ExcelScript.GeometricShapeType. roundedRectangle
:角が丸い四角形ExcelScript.GeometricShapeType.ellipse
:円ExcelScript.GeometricShapeType.diamond
:ひし形ExcelScript.GeometricShapeType.rightArrow
:右矢印ExcelScript.GeometricShapeType.downArrow
:下矢印
図形の取得(すべて or 名前指定)
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
const sheet = workbook.getActiveWorksheet();
// ワークシート上の図形を取得
const shapes = sheet.getShapes(); //すべての図形
const shape = sheet.getShape("四角形 1"); //名前を指定した図形
}
図形の名前の確認方法
図形の名前は対象の図形を選択するとワークシートの左上に表示されます。


図形の名前の変更
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
const sheet = workbook.getActiveWorksheet();
// ワークシート上の図形を取得
const shape = sheet.getShape("四角形 1"); //図形名は適宜変更してください
// 新しい名前に変更
shape.setName("四角形 2"); //図形名は適宜変更してください
}
Sponsored link
図形の色変更(塗りつぶし・枠線)
次に図形の色変更について紹介します。
ここでは例として名前指定をして取得した図形を塗りつぶして枠線の色もを変更します。
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
const sheet = workbook.getActiveWorksheet();
// ワークシート上の図形を取得
const shape = sheet.getShape("四角形 1"); //図形名は適宜変更してください
//図形の色変更
shape.getFill().setSolidColor("green"); // 塗りつぶし (例: 緑色)
shape.getLineFormat().setColor("black"); // 枠線の色 (例: 黒色)
}
上記の実行結果はこんな感じです。





色の指定はRGB形式の16進数(例: "FF0000"
)または名前付き色(例: "green"
)のどちらでも使用できます。
図形の位置・サイズ
次に図形の位置とサイズについて紹介します。
ここでは例として名前指定をして取得した図形の位置とサイズを塗りを変更します。
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
const sheet = workbook.getActiveWorksheet();
// ワークシート上の図形を取得
const shape = sheet.getShape("四角形 1"); //図形名は適宜変更してください
// 位置を設定
shape.setLeft(50);
shape.setTop(50);
// サイズを設定
shape.setWidth(200);
shape.setHeight(100);
}
上記の実行結果はこんな感じです。


Sponsored link
図形のテキスト追加・変更
次に図形へのテキスト追加・変更・削除について紹介します。
テキストの追加・変更
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
const sheet = workbook.getActiveWorksheet();
// ワークシート上の図形を取得
const shape = sheet.getShape("四角形 1"); //図形名は適宜変更してください
// テキストを設定(変更)
shape.getTextFrame().getTextRange().setText("テキスト追加"); //テキストは適宜変更してください
}
上記の実行結果はこんな感じです。


テキストの削除
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
const sheet = workbook.getActiveWorksheet();
// ワークシート上の図形を取得
const shape = sheet.getShape("四角形 1"); //図形名は適宜変更してください
// テキストを設定(変更)
shape.getTextFrame().deleteText()
}
Sponsored link
図形の削除
次に図形の削除について紹介します。
名前を指定して削除
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
const sheet = workbook.getActiveWorksheet();
// 削除したい図形の名前を指定して取得
const shape = sheet.getShape("四角形 1"); // 図形の名前は適宜変更してください
// 図形を削除
shape.delete();
}
すべての図形を削除
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
const sheet = workbook.getActiveWorksheet();
// ワークシート上のすべての図形を取得
const shapes = sheet.getShapes();
// すべての図形を削除
shapes.forEach(shape => {
shape.delete();
});
}
Sponsored link
すべての図形に対して同じ処理をする
すべての図形に対して同じ処理する方法を紹介します。
ここでは例としてすべての図形を緑色に塗りつぶします。
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
const sheet = workbook.getActiveWorksheet();
// ワークシート上のすべての図形を取得
const shapes = sheet.getShapes();
// 各図形に対して操作を実行
shapes.forEach(shape => {
//ここにすべての図形に行う処理を記載します。
shape.getFill().setSolidColor("green"); // 塗りつぶし (例: 緑色)
});
}
上記の実行結果はこんな感じです。


Sponsored link
Officeスクリプトの学習本
オフィススクリプトを書籍で学習したいという方はコチラがオススメです。
リンク
コメント