トップページに戻る
05-001 Chromeの設定などのメモ
04-001 サクラエディタの設定などのメモ
04-002 サクラエディタのマクロ集
目次
001 ファイルの情報を取得
Option Explicit
'ファイルの拡張子
Dim ObjFSO : Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Dim ExtStr : ExtStr = ObjFSO.GetExtensionName(GetFileName())
'カレント行とカレント桁
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
MsgBox StrMsg
002 開いてるファイルのフォルダをエクスプローラで開く
Option Explicit
Dim ObjFSO : Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Dim FolderPath : FolderPath = ObjFSO.getParentFolderName(GetFileName())
Dim ObjShell : Set ObjShell = CreateObject("WScript.Shell")
'Runメソッドの第2引数の 3 は最大化表示
ObjShell.Run "explorer.exe """ & FolderPath & """" , 3
003 固定の正規表現で検索その1
Option Explicit
const Pattern = "(\t| )+$"
' SearchNext関数の第2引数の &H04 は 正規表現で検索
SearchNext Pattern , &H04
004 固定の正規表現で検索その2
Option Explicit
const Pattern = "^([^,]*,){10}"
' SearchNext関数の第2引数の &H04 は 正規表現で検索
SearchNext Pattern , &H04
005 固定の正規表現で検索その3
Option Explicit
const Pattern = ",$"
' SearchNext関数の第2引数の &H04 は 正規表現で検索
SearchNext Pattern , &H04
006 コメントの追加
Option Explicit
'ファイルの拡張子
Dim ObjFSO : Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Dim ExtStr : ExtStr = ObjFSO.GetExtensionName(GetFileName())
'カレント行とカレント桁
Dim CurrY : CurrY = ExpandParameter("$y")
Dim CurrX : CurrX = ExpandParameter("$x")
Dim CommentStart : CommentStart = ""
Dim CommentEnd : CommentEnd = ""
If ExtStr = "html" Then
CommentStart = "<!-- SakuraMacro "
CommentEnd = " SakuraMacro -->"
End If
If ExtStr = "js" Then CommentStart = "// SakuraMacro "
If ExtStr = "php" Then CommentStart = "// SakuraMacro "
If ExtStr = "sql" Then CommentStart = "-- SakuraMacro "
If CommentStart <> "" Then
Dim LineStart
Dim LineEnd
If IsTextSelected = 0 Then
LineStart = CurrY
LineEnd = CurrY
Else
LineStart = GetSelectLineFrom
LineEnd = GetSelectLineTo - 1
End If
'VSを意識して、範囲内で
'行頭空白の最小位置を求める
Dim MinSpaceCnt : MinSpaceCnt = 10
Dim LoopInd
For LoopInd = LineStart To LineEnd
Dim LineStr
LineStr = GetLineStr(LoopInd)
If LineStr <> "" Then
Dim J
For J = 1 To Len(LineStr)
If Mid(LineStr , J , 1) <> " " Then
If J < MinSpaceCnt Then
MinSpaceCnt = J
End If
Exit For
End If
Next
End If
Next
AddRefUndoBuffer()
'コメントの追加
For LoopInd = LineStart To LineEnd
MoveCursor LoopInd , MinSpaceCnt , 0
If ExtStr = "html" Then
'行末に移動して、CommentEndを挿入する必要あり
End If
InsText CommentStart
Next
MoveCursor CurrY , CurrX , 0
SetUndoBuffer()
End If
007 コメントの削除
コメント追加を参考にして作成する。
選択範囲を正規表現で置換すれば、よい
008 追加コピー
Option Explicit
Dim ClipStr : ClipStr = GetClipboard(0)
Dim SelectedString : SelectedString = GetSelectedString(0)
SetClipboard &H00 , ClipStr & SelectedString
009 EmEditorで開く
Option Explicit
Const EmEditorPath = "C:\Program Files\EmEditor\EmEditor.exe"
Dim ObjShell : Set ObjShell = CreateObject("WScript.Shell")
'Runメソッドの第2引数の 3 は最大化表示
ObjShell.Run """" & EmEditorPath & """ """ & GetFileName() & """" , 3
010 EmEditorで読取専用で開く
Option Explicit
Const EmEditorPath = "C:\Program Files\EmEditor\EmEditor.exe"
Dim ObjShell : Set ObjShell = CreateObject("WScript.Shell")
'Runメソッドの第2引数の 3 は最大化表示
'読取専用の場合は/rの起動オプションを付ける
ObjShell.Run """" & EmEditorPath & """ /r """ & GetFileName() & """" , 3
011 F02_CreateWinScpPutCommandを起動
Option Explicit
Const F02_ExePath = "_F02-CreateWinScpPutCommand.exeのフルパス"
Dim ObjShell : Set ObjShell = CreateObject("WScript.Shell")
'Runメソッドの第2引数の 3 は最大化表示
ObjShell.Run """" & F02_ExePath , 3
012 F03_ExtractFullPathListを起動
Option Explicit
Const F03_ExePath = "_F03-ExtractFullPathList.exeのフルパス"
Dim ObjShell : Set ObjShell = CreateObject("WScript.Shell")
'Runメソッドの第2引数の 3 は最大化表示
ObjShell.Run """" & F03_ExePath & """ """ & GetFileName() & """" , 3
999 WPFのマクロセレクタを起動
Option Explicit
Const WpfExePath = "D:\sakura_editor_macro\_G01-SakuraMacroSelector.exe"
Dim ObjShell : Set ObjShell = CreateObject("WScript.Shell")
Dim IntReturn
'Runメソッドの第2引数の 3 は最大化表示
IntReturn = ObjShell.Run("""" & WpfExePath & """" , 3 , true)
If CStr(IntReturn) = "2" Then ExecExternalMacro("D:\sakura_editor_macro\002-OpenExploer.vbs")
If CStr(IntReturn) = "3" Then ExecExternalMacro("D:\sakura_editor_macro\003-ExecSearch1.vbs")
If CStr(IntReturn) = "4" Then ExecExternalMacro("D:\sakura_editor_macro\004-ExecSearch2.vbs")
If CStr(IntReturn) = "5" Then ExecExternalMacro("D:\sakura_editor_macro\005-ExecSearch3.vbs")
If CStr(IntReturn) = "9" Then ExecExternalMacro("D:\sakura_editor_macro\009-EmEditor.vbs")
If CStr(IntReturn) = "10" Then ExecExternalMacro("D:\sakura_editor_macro\010-EmEditorReadOnly.vbs")
If CStr(IntReturn) = "11" Then ExecExternalMacro("D:\sakura_editor_macro\011-CreateWinScpPutCommand.vbs")
If CStr(IntReturn) = "12" Then ExecExternalMacro("D:\sakura_editor_macro\012-ExtractFullPathList.vbs")