tag:crieit.net,2005:https://crieit.net/tags/%E3%82%B5%E3%82%AF%E3%83%A9%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF/feed
「サクラエディタ」の記事 - Crieit
Crieitでタグ「サクラエディタ」に投稿された最近の記事
2022-12-19T13:31:16+09:00
https://crieit.net/tags/%E3%82%B5%E3%82%AF%E3%83%A9%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF/feed
tag:crieit.net,2005:PublicArticle/18342
2022-12-19T13:31:16+09:00
2022-12-19T13:31:16+09:00
https://crieit.net/posts/Grep
Grep結果を指定したファイルにまとめて出力する
<pre><code>'=========================================================
'機能名 : Function Grep
'引数 : pm_regExg Grep結果出力先
' : pm_InputStrFile 文字列読み取り側ファイル
' : pm_OutputFile 文字列出力先ファイル
'処理 : Grep検索条件リストファイルに定義した検索ワードを1行ずつ取得しGrepを実施する
' Grep結果は指定したファイルにまとめて出力する
'=========================================================
Function Grep (pm_inputText,pm_folder)
Dim strLine
Dim WshShell: Set WshShell = Wscript.CreateObject("Wscript.Shell")
Dim objFIleSys: Set objFileSys = Wscript.CreateObject("Scripting.FileSystemObject")
Dim strReadFilePath: strReadFilePath = pm_inputText 'Grep検索条件リストファイル
Dim inputPath: inputPath = pm_folder 'Grep対象フォルダ
Dim outputFilePath: outputFilePath = pm_output 'Grep結果出力先
Dim charCode: charCode = "99" '文字コードのオプション
Dim searchOption: searchOption = "SU" '検索条件のオプション
Dim objReadStream: Set objReadStream = objFileSys.OpenTextFile(strReadFilePath, 1)
WshShell.CurrentDirectory = "C:\Program Files (x86)\sakura"
Do Until objReadStream.AtEndOfStream = True
'Grep検索条件リストの用語を1行ずつ取得し、Grepを実行
strLine = objReadStream.ReadLine
WshShell.Run("cmd /c sakura.exe
-GREPMODE -GCODE=" & charCode & "
-GKEY=" & """" & strLine & """" & "
-GFOLDER=" & inputPath & "
-GOPT=" & searchOption & " >>" & outputFilePath
)
WScript.sleep(1500)
LOOP
objReadStream.Close
Set objFileSys = Nothing
msgbox "end"
End Function
</code></pre>
speasmen88
tag:crieit.net,2005:PublicArticle/18340
2022-12-19T13:14:43+09:00
2022-12-19T13:14:43+09:00
https://crieit.net/posts/START-END
コメントアウト挿入(START~END間)
<p>コメントアウト開始タグから終了タグまで先頭に文字列を挿入する</p>
<p>/*←コメントアウト開始位置</p>
<p>--←挿入文字</p>
<p>*/←コメントアウト終了位置</p>
<pre><code>'=========================================================
'機能名 : Function CommentOutRange
'引数 : pm_OutStart コメントアウト開始位置
' : pm_OutEnd コメントアウト終了位置
' : pm_strOut 挿入文字
'処理 : コメントアウト開始位置~終了位置を指定し、
' その間に文字を挿入する
'=========================================================
Function CommentOutRange( pm_OutStart ,pm_OutEnd ,pm_strOut )
'//チェック文字を検索(開始)
SearchNext pm_OutStart,4
StartLine = GetSelectLineFrom()
'//チェック文字を検索(終了)
SearchNext pm_OutStart,4
StartLine = GetSelectLineFrom()
'//開始位置と終了位置をMSGで出力
MsgBox pm_OutStart & " " & pm_OutEnd
'//開始行に移動
MoveCursor StartLine,1,0
StartLine = StartLine + 1
'//開始行から終了行までコメントアウト
For i = StartLine To EndLine
'//一行ずつ移動して、文字を挿入
MoveCursor i,1,0
InsText pm_strOut
Next
End Function
</code></pre>
speasmen88
tag:crieit.net,2005:PublicArticle/18339
2022-12-19T11:34:36+09:00
2022-12-19T11:36:29+09:00
https://crieit.net/posts/3882620981c0bcdfd1753a9e0e78464a
コード修正のためのコメントアウトマクロ
<p>文字列をコメントアウトして、修正箇所を追加する</p>
<p>■例</p>
<p>B144program</p>
<p><修正後><br />
-- 2022-11-18 MOD Start ←コメントSTART行<br />
-- B144program ←修正前をコメントアウト<br />
H144program ←頭文字BをHに修正<br />
-- 2022-11-18 MOD End ←コメントEND行</p>
<pre><code>'=========================================================
'機能名 : Function AddCommentOut
'引数 : pm_SearchStr 検索値
' : pm_strRepBefore 置換前
' : pm_strRepAfter 置換後
' : pm_CmStartStr コメントSTART行
' : pm_CmEndStr コメントEND行
'処理 : 選択されていれば、START-ENDで囲って置換
' : 選択されていなければ、そのまま置換
'=========================================================
Function AddCommentOut( pm_SearchStr,pm_strRepBefore,pm_strRepAfter,pm_CmStartStr,pm_CmEndStr )
'--------------------------------------
'コメントアウトSTART行-END行を追加
'--------------------------------------
'//検索文字があれば、コメントアウト
If Editor.GetSelectedString() <> "" Then
'//1行選択し、クリップボード変数に格納
SelectLine()
Copy()
ClipBoardStr = GetClipboard()
'//コメントアウト文字を挿入
AllCommentOutStr = pm_CmStartStr & StrOut & ClipBoardStr & ClipBoardStr & pm_CmEndStr
Instext AllCommentOutStr
End If
'--------------------------------------
'文字列置換
'--------------------------------------
'//カーソルを上に1行移動
Up2()
'//置換対象文字を検索
SearchNext pm_SearchStr,4
'//検索文字があれば、置換
If Editor.GetSelectedString() <> "" Then
'//置換対象選択
Up()
SearchNext pm_SearchStr, 4
'//置換した文字列を挿入
InsText CStr( Replace( GetSelectedString(CLing(0) ,pm_strRepBefore ,pm_strRepAfter) ) )
End IF
End Function
</code></pre>
speasmen88
tag:crieit.net,2005:PublicArticle/18338
2022-12-19T11:20:04+09:00
2022-12-19T11:20:04+09:00
https://crieit.net/posts/dee35a51da382ab4b9e8525a41bfe96d
検索文字列を行選択
<p>文字列を検索して行選択<br />
検索文字列がなければ、先頭行に移動</p>
<pre><code>'=========================================================
'機能名 : Function SearchStr
'引数 : pm_CheckStr 検索値
'処理 : 文字列を検索して選択する
'=========================================================
Function AddCommentOut_Search( pm_CheckStr )
'//検索対象文字を検索
SearchNext pm_CheckStr, 4
'//検索文字がなければ、Msg出力
If Editor.GetSelectrdString() = "" Then
MsgBox "検索対象なし"
'//先頭行にカーソルを移動
MoveCursor 1,1,0
End If
End Function
</code></pre>
speasmen88
tag:crieit.net,2005:PublicArticle/18337
2022-12-19T11:13:17+09:00
2022-12-19T11:13:17+09:00
https://crieit.net/posts/96e631c08a74f962c7a35c32252a7fc8
定義情報を共通化
<p>■定義情報を共通化</p>
<pre><code>'@@@@[@@@@@@@@@@@ 共通定義 @@@@@@@@@@@@@@@@@@@@@@
Option Explicit
Dim SFO,VD
Set SFO = CreateObject("Scripting.FileSystemObject")
Set VD = SFO.OpenTextFile("定義情報パス")
'//変数定義ファイルを読み込み
ExecuteGlobal VD.ReadAll
'//初期化
Set VD = Nothing
Set SFO = Nothing
</code></pre>
<p>"定義情報パス"には定義した変数を記載。</p>
speasmen88
tag:crieit.net,2005:PublicArticle/18336
2022-12-19T11:00:50+09:00
2022-12-19T11:00:50+09:00
https://crieit.net/posts/998429054adc07282d5ea23118128891
取得用コマンド
<p>■サクラエディタのマクロ作成時に必要な取得コマンド。</p>
<pre><code>'=========================================================
'機能名 : Function FileInfoOut
'引数 : なし
'処理 : ファイル情報を出力
'=========================================================
Function FileInfoOut
'//カレント行とカレント桁
Dim CurrY : CurrY = ExpandParameter("$y")
Dim CurrX : CurrX = ExpandParameter("$x")
Dim StrMsg : StrMsg = ""
StrMsg = StrMsg & "ファイルパス=" & GetFileName() & vbCrLf
StrMsg = StrMsg & "ファイル拡張子=" & ExtStr & vbCrLf
StrMsg = StrMsg & "カレント行=" & CurrY & vbCrLf
StrMsg = StrMsg & "カレント桁=" & CurrX & vbCrLf
StrMsg = StrMsg & "テキスト選択有無=" & IsTextSelected & vbCrLf
StrMsg = StrMsg & "選択開始行=" & GetSelectLineFrom & vbCrLf
StrMsg = StrMsg & "選択終了行=" & GetSelectLineTo & vbCrLf
StrMsg = StrMsg & "選択文字列=" & GetSelectedString(0)
StrMsg = StrMsg & "選択1行文字列取得=" & GetLineStr(CurrY)
MsgBox StrMsg
End Function
</code></pre>
<p>■その他参考サイト<br />
・マクロ専用関数/変数<br />
<a target="_blank" rel="nofollow noopener" href="https://sakura-editor.github.io/help/HLP000268.html">https://sakura-editor.github.io/help/HLP000268.html</a></p>
<p>・サクラエディタの使い方や機能がわかる関数(コマンド)全まとめ一覧<br />
<a target="_blank" rel="nofollow noopener" href="https://caymezon.com/sakura-function/">https://caymezon.com/sakura-function/</a></p>
speasmen88