*[雑記]サクラエディタで選択範囲の合計を算出する

楽天ポイントの消費のため楽天ペイアプリをスマホにインストール
コンビニの支払いによく使うのだが、困るのが総支払額がすぐに見えないこと

仕方なく自前でメモ取っているのだが合計の計算が面倒くさい
f:id:nakapon:20210406130343p:plain

数行ならいざ知らず、多数行だといちいちexcel立ち上げてコピペしてSUM呼び出して~
でっ簡単なマクロ作りました

サクラエディタマクロ> ※vbsのパスは自環境に合わせるのを忘れずに

S_Copy()
S_ExecCommand('wscript "C:\Program Files\PPX\script\clipboardsum.vbs"',0)

<呼び出すclipboardsum.vbs>

'******************************************************************************
'*** クリップボードからデータ取得し合計を算出してクリップボード出力         ***
'******************************************************************************
Option Explicit
Dim HTMLobj
Dim WSHobj
Dim wTEXT
Dim TEXT
Dim vbCrLf
Dim vbLf
Dim wIMAX
Dim wI
Dim wSUM
Dim oExec
Dim oIn

Set HTMLobj = CreateObject("htmlfile")
vbCrLf = Chr(13) & Chr(10)
vbLf = Chr(10)

'*** クリップボードからデータ取得 ***
wTEXT = Trim(HTMLobj.ParentWindow.ClipboardData.GetData("text"))

'*** 念の為に改行をLFに統一 ***
wTEXT = Replace(wTEXT, vbCrLf, vbLf)
'*** LFでデータを分割し配列に格納 ***
TEXT = split(wTEXT,vbLf)

'*** 配列の要素数を保存 ***
wIMAX = UBound(TEXT)

'*** 配列の全要素をループで合計計算 ***
wI = 0
wSUM = 0
Do Until wI > wIMAX
	If IsNumeric(TEXT(wI)) Then
		wSUM = wSUM + TEXT(wI)
	End If
	wI = wI + 1
Loop

'*** clip使ってクリップボードに合計貼り付け ***
wSUM = Trim(wSUM)
Set WSHobj = WScript.Createobject("WScript.Shell")
Set oExec = WSHobj.Exec("clip")
Set oIn = oExec.stdIn
oIn.WriteLine wSUM

HTMLobj = ""
WScript.Quit(0)

後は合計したい数字を選択した状態でマクロを呼び出せば
合計がクリップボードに貼り付けられる
f:id:nakapon:20210406130348p:plain

やっつけなので型(数字)チェック等、エラー処理が貧弱なので注意