ページ:[≪ <] [1] [2] [3] [4] [5] [6] [7] [8] [ ]
646
2018/1/13 (土) 07:43:10  
[646] 自作マクロの公開

ユーザー名とパスワードを求められ「マクロ投稿」出来なかったので
こちらにupさせて頂きます.

■カテゴリー
vbs
■サマリ
選択枠の罫線描画/抹消
■メッセージ
矩形選択(Altキー+マウスドラッグ)枠の罫線処理マクロ(細線=>太線=>空白)です.

 サクラエディタ V2.3.2.0 ,正式,等幅フォント環境で作成,確認しました.
 動作条件をV2.2.0.0以降としていますが,他環境での挙動は未確認です.

http://www.vector.co.jp/soft/winnt/writing/se517170.html

YM
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; MAFSJS; rv:11.0) like Gecko

641
2017/9/12 (火) 22:36:53  
[641] 画面表示開始行の取得方法

マクロの命令 SetViewTop を使用すると,
表示する一番上の行の行番号を指定することができますが,
現在何行目から表示されているかを取得するにはどうすればよいのでしょうか?
NaKIT
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0


2017/10/6 (金) 23:27:36  
[642] Re:画面表示開始行の取得方法

▼ NaKITさん
> マクロの命令 SetViewTop を使用すると,
> 表示する一番上の行の行番号を指定することができますが,
> 現在何行目から表示されているかを取得するにはどうすればよいのでしょうか?


実装ベースで確認したところ、方法はありませんでした。
現状、サクラエディタには存在しない機能です。


マクロから使える全ての機能は、
以下のファイルで実装されています。

https://sourceforge.net/p/sakura-editor/code/4196/tree/sakura/trunk2/sakura_core/macro/CSMacroMgr.cpp

・VB的にSubな関数群
sakura_core\macro\CSMacroMgr.cpp(43):        MacroFuncInfo CSMacroMgr::m_MacroFuncInfoCommandArr[] =

・VB的にFunctionな関数群
sakura_core\macro\CSMacroMgr.cpp(411):        MacroFuncInfo CSMacroMgr::m_MacroFuncInfoArr[] =


値を返す関数群「m_MacroFuncInfoArr」に
CEditWnd::getInstance()->GetActiveView()->m_pcTextArea->GetViewTopLine();
を返す関数を追加してやれば良いです。

需要があるとわかればきっと誰かが作ってくれる気がします。
開発Uとかでアピってみてください。

もしくは、これを機にC言語開発に挑戦してみるのもよいかもしれません。
F_SETVIEWTOPを参考にF_GETVIEWTOPを定義し、
他の部分は隣の処理からコピペしてくれば簡単に実現できる機能です。
javascript等で他人のコードが読めるなら、不可能じゃないと思います。
berryzplus
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko


2017/10/7 (土) 16:32:53  
[643] Re2:画面表示開始行の取得方法

ちょっと考え直してパッチ投稿することにしました。
https://sourceforge.net/p/sakura-editor/patchunicode/1112/

この程度ならオレにもできる!
と感じてもらえれば幸いです。

berryzplus
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko


2017/10/8 (日) 23:31:49  
[644] Re3:画面表示開始行の取得方法

▼ berryzplusさん
ありがとうございます。
C++ は門外漢ですが,いただいた解説と実装例のパッチを拝見し,どうにかできそうな気になりました。

実のところ,もともとの目的は,以下の Request「EOFが最上部に来るまでスクロール可能にする」
http://sakura.qp.land.to/?Request%2F483
をマクロでどうにかすることです。
パッチ&ビルドが必要となると,私個人はともかく,Request の投稿者さんには敷居が高いですね。

需要についてですが,表示開始行/桁が取得できると,エディタの舌触りというか,使用感を変更できるようになります。
示していただいたサンプルのように,マクロでいろいろやった後に元の表示状態に戻すことが容易になります。
段落移動・タグジャンプ・次/前検索・ブックマーク移動 などで,カーソル移動後の表示を望む場所にできます。

正式版への採用をにらんで考えるに,仕様としては,新たに GetViewTop()・GetViewLeft() を増発するよりも,ChangeTabWidth(), ChangeWrapColm() のように,SetViewTop()・SetViewLeft()・CurLineCenter() の戻り値とした方が良いように思えます。

取得のみ行いたいときは SetViewTop(), SetViewLeft() へ 0 を指定するわけです。
NaKIT
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0


2017/10/9 (月) 21:08:59  
[645] Re4:画面表示開始行の取得方法

さらに考え直してパッチとパッチ適用済みexeをwikiにあげときました。

▼ NaKITさん
> 正式版への採用をにらんで考えるに,仕様としては,新たに GetViewTop()・GetViewLeft() を増発するよりも,ChangeTabWidth(), ChangeWrapColm() のように,SetViewTop()・SetViewLeft()・CurLineCenter() の戻り値とした方が良いように思えます。
>
> 取得のみ行いたいときは SetViewTop(), SetViewLeft() へ 0 を指定するわけです。


いらないものが増えるのは困りそうですが、
SetがあるのにGetがない状況は不自然だと思います。
戻り値を返すようにするのは賛成ですけど、
足りないものを補う増発はやむなしかな、と思います。


あと、ややこしいんですが、
SetViewTopは絶対レイアウト行番号を指定して
その行が上端になるようにスクロールする機能です。
正確な値が必要ならば、やはり取得関数が欲しいです。


ここであるべき姿についてグダグダ語ったとしても
きっと誰も読まないと思うのでそういうのは他所でやることにします。
berryzplus
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko

639
2017/6/27 (火) 17:47:15  
[639] 「マクロ実行結果のクリップボード保存」「フォルダ内ファイル一式マクロ適応」は可能でしょうか?

サクラエディタのマクロを本格的に使いたいのですが、
このようなことは可能でしょうか?
まだ少ししか触っておらず、マクロの知識も乏しいので、
もし「そもそもできないこと」であればご指摘をいただければ幸いです。


【教えていただきたいこと1】
マクロで置換を実行し、実行結果をクリップボードに入れたい。
結果をクリップボードに入れるマクロの記述(?)がよくわかりませんでした。

[例]
・テキスト「ABCDEFG」を置換(CDE→xyz)するマクロを記述
・マクロ実行させる
・結果の「ABxyzFG」をクリップボードに格納したい


【教えていただきたいこと】
フォルダ内(サブフォルダ含む)のファイルに対して、
マクロで置換をかけれるのでしょうか?

[例]
■フォルダ構成
\abd\abc.txt
\abd\xyz\def.txt
\abd\xyz\pqr\ghi.txt

・テキスト「ABCDEFG」を置換(CDE→xyz)するマクロを記述
・abdフォルダ配下のファイルにマクロ置換を適応したい
山本 利子
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko


2017/6/30 (金) 22:03:50  
[640] Re:「マクロ実行結果のクリップボード保存」「フォルダ内ファイル一式マクロ適応」は可能でしょうか?

▼ 山本 利子さん
> もし「そもそもできないこと」であればご指摘をいただければ幸いです。

たぶん無理ゲーです。
「知りたいこと」に挙げられた内容はどちらも実現可能で、
説明もできますが「やりたいこと」はできなさそうに思えました。

普通のクリップボードは1度に1つのデータしかストックできないので、
検索結果が複数あった場合に「最後の一個しか取れない」になるからです。
普通じゃないクリップボードとしてはOfficeのクリップボード履歴機能が挙げられます。
sakuraはWindows標準のクリップボードを使ってるので、使えるデータは1個だけです。


> 【教えていただきたいこと1】
> マクロで置換を実行し、実行結果をクリップボードに入れたい。
> 結果をクリップボードに入れるマクロの記述(?)がよくわかりませんでした。


置換処理後、置換結果を指定して検索すれば
検索結果テキストを選択できます。
選択したテキストをクリップボードに入れるのには
Copyコマンドを発行します。

> 【教えていただきたいこと】
> フォルダ内(サブフォルダ含む)のファイルに対して、
> マクロで置換をかけれるのでしょうか?


sakura v2.3の機能で「Grep置換」というものがあります。
Grep機能で検索した結果に置換をかけられる機能です。
Grep置換に対応したバージョンを使えば可能です。
berryzplus
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko

635
2017/5/27 (土) 17:46:07  
[635] S_Merge()連続した重複行の削除(uniq)のダイアログ

「n行をマージしました。」というのを出さないようにはできないのでしょうか
ino
Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.12


2017/6/17 (土) 09:35:55  
[638] Re:S_Merge()連続した重複行の削除(uniq)のダイアログ

▼ inoさん
> 「n行をマージしました。」というのを出さないようにはできないのでしょうか

現在のバージョンでは「できない」仕様となっています。
ただ、このダイアログを出したくないという要求はありそうですし、メッセージはステータスバーに出せば良いという考えもあるかと思われますので、今後のバージョンで仕様変更余地はあると思います。

なお、ソースコード見てみましたが、今は特にオンオフできる仕様になっていないですね。
void CViewCommander::Command_MERGE(void)とか、MessageBox 系の動作仕様が関係していそうです。
SNK
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

637
2017/6/17 (土) 09:20:06  
[637] LaTeXコンパイルマクロ

最近サクラエディタを使いはじめたものです。
LaTeXも昔から使っていて、サクラエディタからLaTeXを
コンパイルするDOSコマンドを発行するマクロを探したのですが、
見当たらないようなので、他の方のマクロを参考に、作ってみました。

ただ、この方法がよいかどうかよくわかってません。
もっとよい方法があれば、教えていただけないでしょうか?

よろしくお願いします。

//----- ここから -------
var AXsh = new ActiveXObject("WScript.Shell");
var path = GetFilename;
var parPath = path.replace(/[^\\]*$/""); // パス抽出
var Fname   = path.replace(/^.*\\/,"");  // ファイル名抽出

AXsh.run("cmd.exe /k cd " + parPath + " & platex " + Fname + " & exit");
IWAZATO
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

622
2017/4/28 (金) 01:38:28  
[622] 特定のキーワードの上に改行を入れるマクロ

どうしても上手くいかないのですが良い方法ありませんか?
なかの
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36


2017/4/30 (日) 20:00:57  
[623] Re:特定のキーワードの上に改行を入れるマクロ

改行入れれました。特定のキーワードが複数ある場合、
例えば10回の場合は10回だけ発生するように繰り返し
行いたいのですが、今の所分かっていません。
なかの
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36


2017/6/12 (月) 00:54:49  
[636] Re2:特定のキーワードの上に改行を入れるマクロ

普通に置換機能でうまくいきませんか?
たとえば、メニュー>検索>置換  のダイアログにて、
 - 置換前  mykeyword
 - 置換後  mykeyword\n
 - [レ]正規表現(E)  にチェックを入れる。
として置換してみたらいかがでしょうか?

なお、これを「キーマクロの記録」すると、
```
ReplaceAll('abc', 'abc\\n', 132);        // すべて置換
```
というマクロになります。
SNK
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

634
2017/5/21 (日) 21:16:13  
[634] マクロ処理内にて、キーボードイベント取得方法

お初におめにかかります。
Jscriptにてマクロを作成しております。
無学につき、質問させていただきます。

マクロ処理内にて、キーボードイベントの取得方法はありませんか?
或いは、0〜9, A〜zなどのキーに紐付けられたマクロ自身が、どのキー押下によって起動されたかを知る術はありませんか?

教えていただきたいです。
よろしくお願いします。
とかち
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0

630
2017/5/20 (土) 04:07:29  
[630] 画面上のカーソル位置

質問させていただきます。
現在、何画面か離れたとこへJump()し、処理を終えてJump()で元の位置に戻ってくるようなマクロを書いているのですが、
これですと戻ってくる行としては合ってますが行の位置自身が変わってしまうため数行程度のスクロールが発生してしまいます。
これを防ぐ手立てはありますでしょうか?
見た目上のカーソル位置が取得出来れば対処可能かなと思ったのですが、ちょっと探しきれず…どなたかご教示頂ければと思います。

ケイ
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0


2017/5/20 (土) 18:37:52  
[631] Re:画面上のカーソル位置

BookmarkReset();
BookmarkSet();
Jump();
BookmarkPrev(); または BookmarkNext();

という流れはどうですか?
神楽
Mozilla/5.0 (Linux; Android 7.0; SCV31 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36


2017/5/20 (土) 20:59:35  
[633] Re2:画面上のカーソル位置

レスありがとうございます。
やはり戻ってくる時点でスクロールが発生してしまいます…
例えば50行目を画面の縦位置中央辺りに表示させて置いて、100行目に飛んで戻ってくると50行目が上の方へ移動していると言うようなことを防ぎたいのです。
ケイ
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0

628
2017/5/10 (水) 23:28:06  
[628] ファイル名を取得し、そのファイル名で置換

次のようなファイルがあったとします。
これらのファイル群に対して「ファイル名を取得し、ファイル内に書かれた●●を拡張子つきのファイル名で置換する」ということは可能なのでしょうか? マクロ/Grepで色々試してみましたが、上手くいきません。

------------------
■ファイル群
aaa.txt
bbb.txt
ccc.txt
ddd.txt
eee.txt

■各ファイルの中身
このファイル名は●●●です。
------------------
 ↓
実現したい結果
 ↓
----------------------------
aaa.txt
 (中身)このファイル名はaaaです。

bbb.txt
 (中身)このファイル名はbbbです。

ccc.txt
 (中身)このファイル名はcccです。

ddd.txt
 (中身)このファイル名はdddです。

eee.txt
 (中身)このファイル名はeeeです。
----------------------------
アツシ
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko


2017/5/16 (火) 11:58:14  
[629] Re:ファイル名を取得し、そのファイル名で置換

まず、一般掲示板にも似たようなこと投稿してるけど、
類似の多重投稿は控え、重複したスレは消すべき。


さて本題ですが、サクラエディタに備わっている機能

メニューバーより
「編集」>「高度な操作」>「このファイル名をコピー」
ショートカットキー:Ctrl+-

これを使ってマクロ化すればよいと思います。
TKR
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko


2017/5/20 (土) 18:51:44  
[632] Re:ファイル名を取得し、そのファイル名で置換

●●●をExpandParameter('$g')に置換するように
ReplaceAll関数( http://sakura-editor.sourceforge.net/htmlhelp2/HLP000293.html
で指定するというのはどうでしょうか?

ExpandParameterで使える特殊記号等は以下参照
http://sakura-editor.sourceforge.net/htmlhelp2/HLP000284.html
神楽
Mozilla/5.0 (Linux; Android 7.0; SCV31 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36

624
2017/5/3 (水) 10:47:29  
[624] 選択した文字列を置換前の文字列に指定して検索し、合致した文字列の前後にHTMLタグを挿入するマクロの作成方法

選択した文字列を置換前の文字列に指定して検索し、合致した文字列の前後にHTMLタグを挿入するマクロの作成方法を教えてもらいたいです。

下記のように記述してみましたが、うまくいきませんでした。
-----------------------------------------

// 選択した文字列をタグを付けて置換
var text = replace(/( Editor.GetSelectedString(1))/g ,'<b>'+'$1'+'</b>',6 );

// 編集した文字列を挿入
Editor.InsText(text);
----------------------------------------------
プログラムには詳しくありませんですので、宜しくお願いします。
てっちゃん
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36


2017/5/9 (火) 06:01:54  
[627] Re:選択した文字列を置換前の文字列に指定して検索し、合致した文字列の前後にHTMLタグを挿入するマクロの作成方法

自己解決しました。
てっちゃん
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36

625
2017/5/5 (金) 16:49:53  
[625] 選択文字列でGoogle検索したい。

どこからか下記を拾って右クリックメニューに追加したのですが、
「マクロの実行に失敗しました」のダイアログが出てきます。
どうすれば実行できるのでしょうか?
エンコードしてないと失敗するとは?

//任意のブラウザのパスに書き換える
var strBrowserPath = "C:\\Program Files\\Mozilla Firefox\\firefox.exe";
strBrowserPath = "\"" + strBrowserPath + "\"";
var keyword = GetSelectedString(0);
if( keyword == ""){
    GetSelectedString(0);
}
//エンコードしてないと失敗するorz
keyword = encodeURIComponent(keyword);
var strUrl = "https://www.google.co.jp/search?hl=ja&inlang=ja&q=" + keyword;
var shell = new ActiveXObject("WScript.Shell");
shell.Run(strBrowserPath + " \"" + strUrl + "\"");
okbtsnr
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0


2017/5/5 (金) 18:26:11  
[626] Re:選択文字列でGoogle検索したい。

すみません、再インストールして解決しました。
okbtsnr
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0

ページ:[≪ <] [1] [2] [3] [4] [5] [6] [7] [8] [ ]
INCM/CMT
Cyclamen v3.81