OfficeScripts(オフィススクリプト)での文字列操作について紹介します。
セルからの文字列取得から結合・分割・置換まで一通り紹介しています。
説明用スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。
セルから文字列を取得する
まずセルから文字列を取得する方法について紹介します。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。
function main(workbook: ExcelScript.Workbook) {
// シートを選択
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// セルの文字列を取得
let text = sheet.getRange("A1").getText(); // 任意のセルに変更してください(例: "A1")
}
Sponsored link
文字列の結合・連結
次に文字列の結合について紹介します。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。また、console.log()部分は確認用出力のためですので削除してOKです。
+演算子で結合
function main(workbook: ExcelScript.Workbook) {
// 文字列を作成
let text1 = "Hello";
let text2 = "World";
// +演算子で文字列結合
let result = text1 + " " + text2; // "Hello World";
// 結果を出力
console.log(result);
}
concatメソッドで結合
function main(workbook: ExcelScript.Workbook) {
// 文字列を作成
let text1 = "Hello";
let text2 = "World";
// concatで文字列結合
let result = text1.concat(" ", text2); // "Hello World";
// 結果を出力
console.log(result);
}
Sponsored link
文字列の分割
次に文字列の分割について紹介します。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。また、console.log()部分は確認用出力のためですので削除してOKです。
区切り文字で分割
splitメソッドを用いて 指定の区切り文字で文字列を分割します。
function main(workbook: ExcelScript.Workbook) {
// 分割したい文字列
let text = "apple,banana,grape,orange";
// 区切り文字(カンマ)で文字列を分割
let splitText = text.split(","); // 任意の区切り文字に変更してください(例: ",")
// 分割結果をログに出力
console.log(splitText);
}
上記スクリプトの実行結果は下記になります。分割した文字列は配列に格納されます。
文字列分割後の文字列を出力
例として分割した文字列をA列に出力する方法を紹介します。
function main(workbook: ExcelScript.Workbook) {
// 分割したい文字列
let text = "apple,banana,grape,orange";
// 区切り文字(カンマ)で文字列を分割
let splitText = text.split(",");
// 分割結果をシートに出力(例:アクティブシートのA1からA4に出力)
let sheet = workbook.getActiveWorksheet();
for (let i = 0; i < splitText.length; i++) {
sheet.getCell(i, 0).setValue(splitText[i]);
}
}
上記スクリプトの実行結果は下記になります。配列に格納された文字列データをひとつずつ取り出してセルに出力しています。
Sponsored link
文字列の抽出・切り出し
次に文字列の抽出について紹介します。
sliceメソッドを用いて、開始位置と終了位置を指定して文字列を抽出します。位置のインデックスは0始まりなので注意して下さい。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。また、console.log()部分は確認用出力のためですので削除してOKです。
function main(workbook: ExcelScript.Workbook) {
// 文字列を設定
let text = "apple,banana,grape,orange";
// 開始位置と終了位置を設定して文字列抽出(インデックスは0始まり)
let text1 = text.slice(0, 5); //apple
let text2 = text.slice(6, 12); //banana
let text3 = text.slice(13, 18); //grape
let text4 = text.slice(19, 25); //orange
// 抽出結果をログに出力
console.log(text1,text2,text3,text4);
}
上記スクリプトの実行結果は下記になります。
Sponsored link
文字列の置換
次に文字列の置換について紹介します。
replaceメソッドを用いて、指定の文字列を置換します。正規表現によるフラグを追加することで細かな設定をすることができます。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。また、console.log()部分は確認用出力のためですので削除してOKです。
replaceメソッド:最初に見つかった文字列を置換
function main(workbook: ExcelScript.Workbook) {
// 文字列を作成
let text = "I have an apple";
// replaceで文字列置換
let replacedtext = text.replace("apple", "orange");
// 結果を出力
console.log(replacedtext);
}
上記スクリプトの実行結果は下記になります。
replaceメソッド:すべての一致部分を置換
すべての一致部分を置換するには/置換対象/g
のようにg
フラグを指定します。
function main(workbook: ExcelScript.Workbook) {
// 文字列を作成
let text = "I have an apple. I like apple";
// replaceで文字列置換
let replacedtext = text.replace(/apple/g, "orange");
// 結果を出力
console.log(replacedtext);
}
上記スクリプトの実行結果は下記になります。
replaceメソッド:大文字小文字を区別しない。
大文字小文字を区別しないで置換する場合は/置換対象/i
のようにi
フラグを追加します
function main(workbook: ExcelScript.Workbook) {
// 文字列を作成
let text = "I have an Apple. I like apple";
// replaceで文字列置換
let replacedtext = text.replace(/apple/gi, "orange");
// 結果を出力
console.log(replacedtext);
}
上記スクリプトの実行結果は下記になります。
Sponsored link
文字列変換(数値から文字列・文字列から数値)
次に文字列変換について紹介します。
toStringメソッド と parseInt()関数を用いて、文字列と数値の変換をします。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。また、console.log()部分は確認用出力のためですので削除してOKです。
数値を文字列に変換
function main(workbook: ExcelScript.Workbook) {
// 数値を作成
let numberValue = 123;
//文字列に変換
let stringValue = numberValue.toString();
// 結果を出力
console.log(stringValue); // "123"(文字列として扱われる)
}
文字列を数値に変換
function main(workbook: ExcelScript.Workbook) {
// 文字列を作成
let stringValue = "123";
// 数値に変換
let numberValue = parseInt(stringValue); // 整数に変換
// 結果を出力
console.log(numberValue);
}
parseInt()
は整数部分のみを取得します。小数点以下を含む場合はparseFloat()
を使用してください。- 数値に変換できない文字列を変換しようとすると、
NaN
(Not a Number)が返されます。
Sponsored link
文字列の長さ(カウント)
次に文字列の長さをカウントする方法について紹介します。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。また、console.log()部分は確認用出力のためですので削除してOKです。
function main(workbook: ExcelScript.Workbook) {
// 文字列を作成
let stringValue = "ABCDEFG";
// 文字列の長さを取得
let length = stringValue.length;
// 結果を出力
console.log(length);
}
上記スクリプトの実行結果は下記になります。
Sponsored link
文字列の検索(特定の文字列を含む)
最後にに文字列を検索する方法について紹介します。
includesメソッド を用いて、文字列内に特定の文字列が含まれているか判定します。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。また、console.log()部分は確認用出力のためですので削除してOKです。
特定の文字列を検索(含むか判定)
function main(workbook: ExcelScript.Workbook) {
// 文字列を作成
let stringValue = "I have an apple";
// 文字列を含むか判定
let result = stringValue.includes("apple") // ここに検索したい文字列を入力
// 結果を出力
console.log(result);
}
上記スクリプトの実行結果は下記になります。
文字列の検索結果に対して処理を実行
文字列検索の例として、列Aに”apple”がある場合は 列Bに”OK”と出力させるスクリプトの載せておきます。処理を作成する参考にしてみてください。
function main(workbook: ExcelScript.Workbook) {
// シートを取得
let sheet = workbook.getActiveWorksheet();
// 検索対象の文字列
let searchString = "apple"; // ここに検索したい文字列を入力
// A列のデータを取得(A1からA列の最終行まで)
let values = sheet.getRange("A1:A" + sheet.getUsedRange().getRowCount()).getValues();
// A列をループして文字列を検索する。検索してあった場合はB列に'OK'と表示する。
for (let i = 0; i < values.length; i++) {
let cellValue = values[i][0]; // A列の値を取得
if (typeof cellValue === "string" && cellValue.includes(searchString)) {
// 該当する場合の処理を記述(例:B列に"OK"と表示)
sheet.getCell(i, 1).setValue("OK"); // B列は列インデックス1
} else {
// 該当しない場合の処理を記述(例:B列は空白)
sheet.getCell(i, 1).clear();
}
}
}
上記スクリプトの実行結果は下記になります。
Sponsored link
オフィススクリプトを書籍で学習したいという方はコチラがオススメです。
コメント