web-dev-qa-db-ja.com

Googleドキュメントで検索と置換(特定のシンボルの色を変更する)を自動化するにはどうすればよいですか?

特にすべてのスーツシンボルをドキュメント全体に色付けするために、検索と置換を自動化するにはどうすればよいですか?

ブリッジの記事(カードゲーム)を作成し、このフォーマットを常に自動化する必要があります。

すべての「♣」を見つけて、緑色にします。すべての「♦」を見つけて、オレンジ色にします。すべての「♥」を見つけて、赤で塗りつぶします。すべての「♠」を見つけて、青に色付けします。

スクリプトにとても感謝しています!ありがとう。

Ps:スーツのシンボルを取得するには、次を押します。

  • LEFTALT + NUMPAD3(♥)
  • LEFTALT + NUMPAD4(♦)
  • LEFTALT + NUMPAD5(♣)
  • LEFTALT + NUMPAD6(♠)

そのヒントをありがとうUser0。 Wordで私が求めていることをマクロで実行したい人がいたら、それをあなたに送ることができます。

2
J M N

書式設定で検索と置換を行うには、Google Apps Scriptを使用する必要があります。すでにGASに精通していることを前提としていますが、そうでない場合は、この投稿にコメントを返信してください。

このスクリプトは、すべてのインスタンスに書式設定を適用するメニューをドキュメントに追加することにより、4つすべてのスーツの背景色を同じ色に変更できる例を提供します。スクリプトをGoogleドキュメントに追加すると、新しいメニューは次のようになります。

Utilities > Auto-Replace menu next to the "Help" menu in the Google Docs toolbar

そして、ここにコードがあります:

function onOpen() {
  DocumentApp.getUi()
      .createMenu('Utilities')
      .addItem('Auto-Replace', 'replaceSuits')
      .addToUi();
};

function replaceSuits() {
  var body = DocumentApp.getActiveDocument().getBody();      

  var found = body.findText("(♥|♦|♣|♠)");
  while (found) {
    var elem = found.getElement();
    if (found.isPartial()) {
      var start = found.getStartOffset();
      var end = found.getEndOffsetInclusive();
      elem.setBackgroundColor(start, end, "#ff0000");

    }
    else {
      elem.setBackgroundColor("#ff0000");
    }
    found = body.findText("(♥|♦|♣|♠)", found);
  }
};

この質問は replaceText()での書式設定 に似ており、そこからコードを借りました。

あなたの質問で説明されているように各スーツを異なって強調するより長い例があります(各スーツに4つの別々のコードブロックを使用し、共有コードを許可するために間違いなくリファクタリングできましたが、これは私にとってそれをコーディングする最も簡単な方法でした): https://Pastebin.com/7Y1L6BqF

1
Mark

次の記事では、Reversible Formulasアドオンを使用してください。

ドキュメントに次のように書きます:

c = (["♣", {color: "#00FF00", fontSize: 16}])
d = (["♦",  {color: "#FF8800", fontSize: 16}])
h = (["♥", {color: "#FF0000", fontSize: 16}])
s = (["♠", {color: "#0009FF", fontSize: 16}])

One =h, with three =d =d =d vs. two =s =s and two =c =c.

[値の表示]をクリックすると、以下が取得されます。

rendered content

ドキュメントから定義を非表示にするには、「Defsを抽出」をクリックします。それらは別のコードボックスに配置されます。

アドオンは次の場所にあります: https://chrome.google.com/webstore/detail/formulas-for-google-docs/kgjbgmonlnhglokmfnpnklegakfknbeh

免責事項:私はこのアドオンの著者です

0
Mikaël Mayer