効率アップ!ChatGPTでIllustratorのスクリプト作成に挑戦!〜レイヤーパレットで選択中のレイヤーをダイアログに入力した数字の数だけ複製するスクリプト〜

ChatGPTにIllustratorで使えるスクリプトを書いてもらうことができました。

// ダイアログを表示して入力値を取得する
var userInput = prompt("複製するレイヤーの数を半角英数で入力してください:", "");
var layerCount = parseInt(userInput);

// 選択したオブジェクトをコピーする
var doc = app.activeDocument;
var selection = doc.selection;

// 選択したオブジェクトが存在するか確認する
if (selection.length > 0) {
  var copyItem = selection[0].duplicate();
  var currentLayerName = getSelectedLayerName(); 

  // レイヤーを複製し、オブジェクトをペーストする
  for (var i = 0; i < layerCount; i++) {
    // 新しいレイヤーを作成する
    var newLayer = doc.layers.add();
    newLayer.name = currentLayerName + "-" + (i + 1);

    // オブジェクトを新しいレイヤーにペーストする
    doc.selection = null;
    app.activeDocument.activeLayer = newLayer;
    copyItem.duplicate(newLayer, ElementPlacement.PLACEATBEGINNING);
  }

  // 初期の選択状態に戻す
  doc.selection = null;
  selection[0].selected = true;
} else {
  alert("オブジェクトが選択されていません。");
}


// レイヤー名を取得する関数
function getSelectedLayerName() {
  var doc = app.activeDocument; // アクティブなドキュメントを取得
  var selection = doc.selection; // 選択されたオブジェクトを取得
  
  if (selection.length > 0) {
    var selectedLayer = selection[0].layer; // 最初の選択オブジェクトの所属レイヤーを取得
    return selectedLayer.name; // レイヤー名を返す
  } else {
    return "選択されたオブジェクトがありません。";
  }
}

実感としては、いきなり手数の多い処理を書いてもらおうとするとうまく動作しないことが多かったので、機能ごとにスクリプトを書いてもらって、それを自分で組み合わせる。というやり方が良いと思いました。

お時間有りましたら↓の続きを読むをクリックして全文を読んでいただけると嬉しいです。

続きを読む

ChatGPTでIllustratorのスクリプト作成に挑戦!〜選択したレイヤー以外を非表示にするスクリプト〜

↑の中央の矢印を左右にドラッグすると適用前後が表示されます。
// 選択したレイヤー以外を非表示にする関数
function hideOtherLayers() {
    var doc = app.activeDocument; // アクティブなドキュメントを取得
    var selectedLayer = doc.activeLayer; // アクティブなレイヤーを取得
  
    // レイヤーの数だけ繰り返し処理
    for (var i = 0; i < doc.layers.length; i++) {
      var currentLayer = doc.layers[i];
      
      // 選択したレイヤー以外を非表示にする
      if (currentLayer !== selectedLayer) {
        currentLayer.visible = false;
      }
    }
  }
  
  // 関数を実行
  hideOtherLayers();
  

お時間ある方は下記の続きを読むから一部始終を御覧ください。

続きを読む

iOS15、iPadOS15にしてみたら、mailtoで<BR>が表示される(改行が無視される)現象が解決。

お困りのかた、お試しを。

(生まれたてのiOSなので、そのほか不具合等あるかもですが、ご了承ください。。。)

続きを読む

Googleスプレッドシートで先週までの行を自動的に非表示にする。~さらに毎月20日に先月分を表示する~やっぱりMATCH関数で先週の日曜日と先月20日の行数を取得する

以前、

Googleスプレッドシートで昨日までの行を自動的に非表示にする。~日付の比較判定に挫折~MATCH関数を組み合わせてなんとか実現できました。

という記事を書きました。

スプレッドシートで作成した出勤表。スプレッドシートは開くと先頭行からの表示になってしまうので、先週までの行を自動的に非表示にし、今週分から表示することで視認性と操作性を向上させることができました。

出勤表を運営していく上で、2点修正が必要になってきました。

●毎月20日にはその月(先月21日から今月20日まで)の出勤状況をカウントする作業があるので、一時的に一ヶ月さかのぼった分だけ非表示を解除する。

●上記の状態から、今週の月曜より前(先週の日曜日以前)の行を非表示にする。

今回もやはり私の力不足で、スクリプトだけでは実現できず、スプレッドシート上のMATCH関数を使って実現した話です。

続きを読む

Googleスプレッドシートでチェックボックスの列をワンタッチで外す、入れる~iPadアプリ版でも実行できるようにチェックボックスをスイッチにしてみた

Googleスプレッドシートが好きです。

その中でもチェックボックスが好きです。

今回はチェックボックスを一括でオンオフしたいなと思い、おぼつかない手付きで試行錯誤の末なんとか実現できた話です。

続きを読む

結局Excel大冒険〜自動化とタスクスケジューラに翻弄された話と忘備録

緑色のバツ。。。エーックス!!!

Pythonで自動化。Excelのコピペで躓き、タスクスケジューラで躓き、ヨボヨボになりながらなんとか実現できた話。

Excelファイルのコピペしたいだけならxlwindsのexpand()がまさに期待通りの動きをしてくれました。

https://teratail.com/questions/298650

↑のサイトの質問者様と回答者様、大変参考になりました。ありがとうございました。

続きを読む

Googleスプレッドシートで昨日までの行を自動的に非表示にする。~日付の比較判定に挫折~MATCH関数を組み合わせてなんとか実現できました。

endRowという表現は違うと知りました。。。

Googleスプレッドシートで出勤表などを作るときは、まずはカレンダーの作成から始まることが多いと思います。

SEQENCE関数、TEXT関数、ArrayFormula関数などを使ってカレンダー作成に関する記事を書きました。

ドラッグ不要!Googleスプレッドシートで簡単なカレンダーの作り方

このようにして作成したカレンダーを出勤表として使用しています。

Googleスプレッドシートなので、皆でリアルタイムに入力、即共有できるのでとても気軽に使用でき便利です。

特にコロナ禍で出勤時間や勤務スタイルが多様化した現在では利便性を実感できます。

デジタルなカレンダーは、各端末では縦方向にスクロールするほうが操作性が良いため、日付は縦列に並べることが多いと思いますが、

続きを読む