Skip to content

Instantly share code, notes, and snippets.

View UskeS's full-sized avatar

Yusuke S. UskeS

View GitHub Profile
@UskeS
UskeS / array_filter.jsxinc
Last active April 22, 2019 05:57
ECMAScript 3に実装するArray.filter
// Production steps of ECMA-262, Edition 5.1, 15.4.4.20
// https://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.20
// from http://javascript.boxsheep.com/polyfills/Array-prototype-filter/
if (!Array.prototype.filter) {
Array.prototype.filter = function(callbackfn , thisArg) {
"use strict";
var O = Object(this),
lenValue = O.length,
len = lenValue >>> 0,
T,
@UskeS
UskeS / inputDialog.gs
Last active May 31, 2018 05:38
Input dialog method in GoogleAppsScript
function prompt (mes){
var string = Browser.inputBox(mes);
return string;
}
@UskeS
UskeS / confirmDialog.gs
Created May 31, 2018 03:04
Confirm dialog method in GoogleAppsScript.
function confirm (mes){
var res = Browser.msgBox(mes, Browser.Buttons.OK_CANCEL);
if (res === "ok"){
return true;
} else {
return false;
}
}
@UskeS
UskeS / ID_openPlaceOption.jsx
Created June 1, 2018 11:49
既に配置してあるリンクファイルの配置オプションを表示し、リンクファイルを再配置するスクリプト
#target "indesign"
if (app.documents.length == 0) myerror("ドキュメントが開かれていません");
if (app.selection.length == 0) myerror("何も選択されていません");
if (7 > parseInt(app.version)) myerror("InDesignが対応バージョンではありません");
var myDoc = app.activeDocument;
var mySel = myDoc.selection;
if (mySel.length > 1) myerror("2つ以上選択しないでください");
try {
@UskeS
UskeS / getOtherSheetsValue.gs
Created June 2, 2018 00:35
別のスプレッドシートからデータを抽出する
function getOtherSheetsValue() {
var myObj = {};
//現在のスプレッドシート情報
myObj.doc = SpreadsheetApp.getActiveSpreadsheet();
myObj.sheet = myObj.doc.getSheetByName("シート1");
myObj.range = myObj.sheet.getDataRange();
myObj.values = myObj.range.getValues();
//IDを記述したセルからコンテンツを取得
var tgID = [
myObj.values[0][0], //A1
@UskeS
UskeS / multiButtonSUIDialog.jsx
Last active August 8, 2018 11:28
ExtendScriptのScriptUIを利用したカスタムダイアログ
var multiBtnDlg = function(title, text, list, focus) {
var cDlg = new Window("dialog", title);
cDlg.add("statictext", undefined, text, {multiline: true});
var btnGrp = cDlg.add("group");
var btnList = [];
for (var i=0; i<list.length; i++) {
if (i === focus) {
btnList.push(btnGrp.add("button", undefined, list[i], {name: "ok"}));
} else {
btnList.push(btnGrp.add("button", undefined, list[i]));
@UskeS
UskeS / addCostomCharctertoCompFont.jsx
Created August 17, 2018 07:51
[InDesign] すべての合成フォントに同じ特例文字セットを追加する
//セット名が重複しても上書きされずにそのまま追加されます
var costomCharSet = {
name: "セット名", //特例文字セット名
customCharacters: "%◯&", //追加する文字
appliedFont: "A-OTF 見出ゴMB31 Pr6", //フォント
fontStyle: "MB31" //スタイル・ウェイト
};
!function() {
@UskeS
UskeS / removeOverlappingCompFonts.jsx
Created August 17, 2018 12:54
[InDesign] 重複して末尾が -\d な名前の合成フォントをまとめて削除
!function() {
var doc = app.activeDocument;
var compFonts = doc.compositeFonts;
for (var i=compFonts.length-1; i>0; i--) {
if (/\-\d+$/.test(compFonts[i].name)) {
compFonts[i].remove();
}
}
}();
@UskeS
UskeS / getCompFontCustomChars.jsx
Created August 17, 2018 13:11
[InDesign] 合成フォントの各セットに登録されている文字列を抽出する
!function() {
var doc = app.activeDocument;
var compFont = doc.compositeFonts[1]; //0だと[No composite font]になる
var cfEnt = compFont.compositeFontEntries;
var result = [];
for (var i=1; i<cfEnt.length; i++) { //漢字は取得できないのでi=1から
result.push("【" + cfEnt[i].name + "】");
result.push(cfEnt[i].customCharacters);
}
makeTxtFile(result.join("\n"), "~/desktop/"+compFont.name+".txt");
@UskeS
UskeS / insertInitSpace.gs
Created August 23, 2018 02:09
[Google Document] [GAS] 先頭行インデントがある行に全角スペースを追加する
function insertInitSpace() {
var doc = DocumentApp.getActiveDocument();
var paras = doc.getBody().getParagraphs();
paras.forEach(function (cv) {
var fl = cv.getIndentFirstLine();
if (fl > 0) {
cv.setIndentFirstLine(0);
cv.setText(" "+cv.getText());
}
});