web-dev-qa-db-ja.com

Googleドキュメントでマクロを使用する-可能ですか?

Googleドキュメントに書き込みながら、いくつかのマクロを使用できるようにしたい。

アイデアは、Wordの クイックパーツ を置き換えることです。そのため、Googleドキュメントでも同じ機能を使用できます。

何か案は?

4
Saariko

前書き

Google 最近 GoogleドキュメントにGoogle Appsスクリプト機能を追加し、Google Developersサイトで 基本 を提示しました。

1つの重要な機能はサイドバーです。これは、「クイックパーツ」が存在する場所です。ただし、それを行うには少しコーディングが必要です。 Martin Hawksey によって作成された次の例を参照してください: Sidebar

27/07/2013の更新、これは私が自分で書いた例です:

コード

// global
var app = DocumentApp.getUi();

function onOpen() {
  app.createMenu('Quick Parts')
    .addItem('Document Property', 'docProperty').addToUi();
}

function docProperty() {
  // set variables
  var doc = DocumentApp.getActiveDocument(); 
  var fileName = doc.getName(), Id = doc.getId();
  var file = DocsList.getFileById(Id), lastUpdated = file.getLastUpdated();
  var fileOwner = file.getOwner().getEmail();

  // arrays with label and result names
  var aNames = ['File name', 'File Id', 'File Owner', 'Last updated by'];
  var aResults = [fileName, Id, fileOwner, lastUpdated];

  // create Ui  
  var Ui = UiApp.createApplication().setTitle('Quick Parts').setWidth(450);
  var vPanel = Ui.createVerticalPanel().setId('vPanel').setSize(450, 100);  
  var fTable = Ui.createFlexTable()
    .setStyleAttribute('borderCollapse','collapse');

  // create labels
  for(var i=0, iLen=aNames.length; i<iLen; i++) {
    fTable.setWidget(i, 0, Ui.createLabel(aNames[i]));
    fTable.setWidget(i, 1, Ui.createLabel(aResults[i]));
  }

  // add to Ui
  vPanel.add(Ui.createLabel().setText("Document Property")
    .setStyleAttribute('font-size','175%'));
  vPanel.add(fTable);
  app.showSidebar(Ui.add(vPanel));
}

スクリーンショット

enter image description here

4

私はQuick Partsに特に不慣れですが、Googleドキュメントでマクロを使用できるかどうかはスクリプトと呼ばれ、スクリプトマネージャーにアクセスしてTools->Script Managerからスクリプトを作成/編集できます。 Googleスプレッドシート内。

0
panhandel