LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 1 year has passed since last update.

Markdown用に画像をペーストするサクラのマクロ

Last updated at Posted at 2022-04-20

サクラエディタでMarkdownを書きたい人へ

サクラのマクロ(vbs)で、画像をペーストできるマクロです。
Qiitaは普通にコピペで画像が貼れる、サクラエディタでもやりたい!ってことで作ってみました

ペーストの代わりにマクロ

サクラエディタの、ファイルダイアログの初期位置をカレントディレクトリにしていれば
編集中のファイルと同階層に画像を置きます。
命名はyyyy_MM_dd_HHmmss.png

また、編集中のファイルに![./ファイル名_yyyy_MM_dd_HHmmss.png]の文字を挿入します
Chromeの拡張とかで見ればきれいにマークダウンできてるはず!

macro.vbs
Dim objFSO
Dim exec_script
Dim filename

Set objFSO = CreateObject("Scripting.FilesystemObject")
fileName = objFSO.GetBaseName(GetFilename()) & "_"
filename = filename & Year(Now()) & "_"
filename = filename & Right("0" & Month(Now()) , 2) & "_"
filename = filename & Right("0" & Day(Now()) , 2) & "_"
filename = filename & Right("0" & Hour(Now()) , 2)
filename = filename & Right("0" & Minute(Now()) , 2)
filename = filename & Right("0" & Second(Now()) , 2)

exec_script = "powershell.exe -sta -WindowStyle Hidden -Command Add-Type -Assembly System.Windows.Forms;" _
& " if (!([Windows.Forms.Clipboard]::ContainsImage())) {exit} ;" _
& " [System.Windows.Forms.Clipboard]::GetImage().Save('./" & filename & ".png');" _
& " Echo '![./" & filename & ".png](./" & filename & ".png)'"

Set exec = CreateObject("WScript.Shell").Exec(exec_script)
Editor.InsText(exec.StdOut.ReadAll)
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up