「日付と時刻を挿入(カレンダー版)」の版間の差分
編集の要約なし |
セミコロンの追加、ソースコードの整形 |
||
| (2人の利用者による、間の5版が非表示) | |||
| 1行目: | 1行目: | ||
[https://www.haijin-boys.com/discussions/2933 指定した日付の入力は出来ないでしょうか]でヒロさんが希望していた、カレンダーからの日付挿入マクロです。PowerShellで.NETのカレンダーコントロールを使用して、クリップボード経由で貼り付けます。 | |||
== 注意事項 == | |||
環境によってはPowerShellの起動がやたらと遅いので、使い物にならないかもしれません。Core i5 Windows7 のビジネスノートではストレスなく動作しましたが、Windows10 にアップグレードされた古い Atom ネットブックでは無理でした。 | |||
== ソースコード == | |||
=== JavaScript === | |||
下記のソースコードをMeryのマクロファイルとして保存(例:calendar.js) | |||
<syntaxhighlight lang="javascript" copy> | |||
#title = "カレンダーで日付挿入" | #title = "カレンダーで日付挿入" | ||
/* | /* | ||
| 24行目: | 29行目: | ||
var mydoc = editor.ActiveDocument; //WScript.Shell.Runの終了待ちの間に操作される対策を追加 | var mydoc = editor.ActiveDocument; //WScript.Shell.Runの終了待ちの間に操作される対策を追加 | ||
var psScript = 'c:\\temp\\calendar.ps1';//←環境に合わせて修正 | var psScript = 'c:\\temp\\calendar.ps1';//←環境に合わせて修正 | ||
var psCmd = 'PowerShell.exe -STA -ExecutionPolicy RemoteSigned -File ' | var psCmd = 'PowerShell.exe -STA -ExecutionPolicy RemoteSigned -File '; | ||
var errlevel = new ActiveXObject('WScript.Shell').Run( psCmd + | var errlevel = new ActiveXObject('WScript.Shell').Run( psCmd + psScript, 0, true); | ||
psScript, 0, true); | |||
if(errlevel==0 && editor.ActiveDocument==mydoc)document.Write(ClipboardData.GetData()); | if(errlevel==0 && editor.ActiveDocument==mydoc)document.Write(ClipboardData.GetData()); | ||
})(); | })(); | ||
</ | </syntaxhighlight> | ||
=== PowerShell === | |||
下記のソースコードをPowerShellのスクリプトファイルとして保存(例:calendar.ps1) | |||
<syntaxhighlight lang="powershell" copy> | |||
# MonthCalendar コントロールで日付を選択する Powershell スクリプト | # MonthCalendar コントロールで日付を選択する Powershell スクリプト | ||
# Enter または F5 でクリップボードにコピー、 Esc でキャンセルして終了する | # Enter または F5 でクリップボードにコピー、 Esc でキャンセルして終了する | ||
| 78行目: | 84行目: | ||
$Form.Dispose() | $Form.Dispose() | ||
exit $exitcode | exit $exitcode | ||
</ | </syntaxhighlight> | ||
スポンサーリンク