アクティブなタブのマクロを実行する

2019年8月12日 (月) 17:48時点におけるSukemaru (トーク | 投稿記録)による版 (ページを新規作成)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
#title = "このマクロを実行"
#tooltip = "アクティブなタブのマクロを実行する"
// #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",15

/**
 * [マクロ] メニューの「これを選択」と「実行」をおこなう
 * 
 * ※ タブが未保存の場合はマクロを実行しない
 * ※ タブの実体ファイルの拡張子だけを確認し、
 *    ファイルの内容までは確認せずにマクロとして実行する
 *  (実行条件を拡張子ではなく編集モードにしたほうがよいかも?)
 * ※ Mery 用のマクロでなくても「これを選択」コマンドが実行されるので
 *   [マクロのカスタマイズ] に登録されてしまうことになる
 */

// ■ マクロ用の拡張子
var reg = /^(?:js|pl|php|py|rbs|vbs)$/;



var d = editor.ActiveDocument;
var dName = d.Name, dSaved = d.Saved;

if ( ! dName || ! dSaved ) {
  Status = "ファイルが保存されていません。";
}
else if ( dName == ScriptName ) {
  Status = "「このマクロを実行」";
}
else {
  var ext = dName.substr( dName.lastIndexOf( "\." ) + 1 ).toLowerCase();
  if ( reg.test( ext ) ) {
    Sleep( 200 );	// キーを放すまでの時間稼ぎ
    editor.ExecuteCommandByID(MEID_MACROS_SELECT_THIS=2175);	// これを選択
    new ActiveXObject( "WScript.Shell" ).SendKeys( "{F4}" );	// マクロの実行
  }
  else {
    Status = "このファイルはマクロではありません。";
  }
}


memo

拡張子があっているか分からない…

スポンサーリンク