クリップボード上の画像をImageMagick(VBS)を使用して保存するには…

以前も質問させていただきましたが、
プリントスクリーンで画像をクリップボード上に保存してトリミングを行った後に指定したファイル名で保存したいです。(ファイル名は固定(ファイルは1つ))

この場合のVBSのコードはどうなるのでしょうか?

最終的にMakeExeを使用して1つのファイルにしたいので、全てVBSでコーディングしたいです。
※現在クリップボード上に保存したい画像を読み込み、ImageMagickのオブジェクトを生成するところまではできています。

以下がこれから実現したいことです。
1.生成したオブジェクトを利用してクリップボード上の画像を読み込む
2.読み込んだ画像をトリミングする(座標はわかっています)
3.トリミングまで完了したデータを指定ファイル名(ファイル形式はJPG)で保存

この3点を実現したいです。
※作成したBatを読み込んで動作させることはできています。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:
  • 終了:2015/01/20 12:55:03
id:keijun5145

作成済みのコードは以下になります。

※最下段のバッチファイルを実行する部分が変化すると思います。

ご教示よろしくお願いします。

Option Explicit

Dim xlsa

Dim Batobj

Dim Path

'カレントフォルダのパスを取得

Set path = CreateObject("Scripting.FileSystemObject").GetFolder(".")


'エクセルオブジェクトを作成の数値を反映

Set xlsa = WScript.CreateObject("Excel.Application")

xlsa.visible = true


'AAAというマクロをBBB.xlsmを開いて実行

'BBBというマクロファイルの中にあるAAAというVBAは指定した画像をクリップボードに保存するためのもの

xlsa.Run "'" & path & "\BBB.xlsm'!AAA"

'シェルスクリプトを作成してCCCというBATファイルを実行

'CCC:クリップボードから指定名の画像ファイルを作成するバッチファイル

Set batobj = createobject("WScript.Shell")

batobj.run(path & "\CCC.BAT")

ベストアンサー

id:TransFreeBSD No.1

回答回数668ベストアンサー獲得回数268

動作確認はしていませんが、a-kuma3さんのコメント
http://q.hatena.ne.jp/1418773003#c279190
を参考に、私の回答
http://q.hatena.ne.jp/1419480569#a1242015
を変更すると、

Set img = CreateObject("ImageMagickObject.MagickImage.1")
Call img.Convert( _
	"clipboard:", _
	"-crop", _
	"960x720+160+0", _
	"+repage", _
	strFileName )

これで良いと思うのですが。
コマンドラインとそんなに変わらないらしいです。

他2件のコメントを見る
id:TransFreeBSD

OLEだと若干バグあるみたいですね。なんでコマンド実行(Runを使う)だとダメなんでしょう?

2015/01/18 14:25:08
id:keijun5145

必ずしもダメというわけではないのですが、プログラムの中身をリバースエンジニアリングされて改変されるのを防ごうと思ったためです。
エラー無視の1文を書き加えるだけで特に問題は出ていないのでこれで良しとします。
ありがとうございました。

2015/01/18 20:52:11

その他の回答0件)

id:TransFreeBSD No.1

回答回数668ベストアンサー獲得回数268ここでベストアンサー

動作確認はしていませんが、a-kuma3さんのコメント
http://q.hatena.ne.jp/1418773003#c279190
を参考に、私の回答
http://q.hatena.ne.jp/1419480569#a1242015
を変更すると、

Set img = CreateObject("ImageMagickObject.MagickImage.1")
Call img.Convert( _
	"clipboard:", _
	"-crop", _
	"960x720+160+0", _
	"+repage", _
	strFileName )

これで良いと思うのですが。
コマンドラインとそんなに変わらないらしいです。

他2件のコメントを見る
id:TransFreeBSD

OLEだと若干バグあるみたいですね。なんでコマンド実行(Runを使う)だとダメなんでしょう?

2015/01/18 14:25:08
id:keijun5145

必ずしもダメというわけではないのですが、プログラムの中身をリバースエンジニアリングされて改変されるのを防ごうと思ったためです。
エラー無視の1文を書き加えるだけで特に問題は出ていないのでこれで良しとします。
ありがとうございました。

2015/01/18 20:52:11

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません