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