Excel VBAでプリントスクリーンの詳細動作を設定したい

プリントスクリーンの動作を行うことまではできたのですが、
更なる効率化のために以下の詳細を設定したいです。

1.プリントスクリーンを行った範囲でトリミングを実施
2.その結果を保存(最初に命名規約は事前に定義)

この2つは実施できるのでしょうか?
可能であればコードの記載方法をご教示願います。
Officeアプリケーションではないので不可能なのでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/12/16 10:56:59
  • 終了:2014/12/23 11:00:07

回答(1件)

id:TransFreeBSD No.1

TransFreeBSD回答回数665ベストアンサー獲得回数2672014/12/17 13:31:03

スクリーンショットはこちらで取れるようです。
http://d.hatena.ne.jp/language_and_engineering/20100425/p1

    ' キャプチャ実行
    keybd_event vbKeySnapshot, 0&, fKEYDOWN, 0&
    keybd_event vbKeySnapshot, 0&, fKEYUP, 0&
    
    '貼り付け処理
    Sheets(sheet_name).Activate
    Range("A1").Select
        'SendKeys "+(^V)", True
    ActiveSheet.Paste

ただ、32bit版と64bit版でkeybd_eventに若干違いがあるようなので合わせてください。
http://qiita.com/nezuq/items/95cad79d9a9dd920d30e

トリミングは以下の真ん中少し下あたりにあります。
http://www.excel-vba.net/excel-figure-003.html

With ActiveSheet.Shapes("Picture").PictureFormat
  .CropLeft = 10
  .CropRight = 10
  .CropTop = 20
  .CropBottom = 20
End With

「ActiveSheet.Shapes("Picture")」は下記参考に「Sheets(iSheet)」を「ActiveSheet」にして

With ActiveSheet.Pictures(ActiveSheet.Pictures.Count).ShapeRange.PictureFormat

としたら良いんじゃないでしょうか。
http://finalfrontier.cerberus-net.jp/?p=63

With Sheets(iSheet).Pictures(Sheets(iSheet).Pictures.Count).ShapeRange

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません