Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


21784 / 76734 ←次へ | 前へ→

【60339】クリップボードのキャプチャ画像をシートの背景にしたいのですが
質問  すう  - 09/2/11(水) 8:59 -

引用なし
パスワード
   はじめまして。
初心者ながら、VBAに挑戦しているのですが、
どうにも解決できない問題があり、ご質問いたしました。
よろしくお願いします。

【作りたいソフト】
 お絵かきソフト
【機能】
 1 VBAでデスクトップのキャプチャを取得
 2 取得したキャプチャ画像をシートに貼り付け
 3 キャプチャ画像を2と違うシートの背景に設定
 4 その上にオートシェイプで、図形を描画

いろいろ調べて、下のようなコードを書きましたが、
機能3のキャプチャ画像をシートの背景にすることができません。

最初は機能2で貼り付けたキャプチャ画像を移動できないように
しようとしたのですが、shapeをenableにできずに断念し、画像を
背景にする方向を模索しております。

画像ファイルからではなく、クリップボードから設定したいと思い
No.52689のLindyさんのコードを参考にいたしましたが、うまく行きません。

うまくいかない部分は、***で囲んだ部分です。
なにとぞ、ご教授をお願いいたします。


Sub main()

'-----------------------------------------------------------
' 変数定義
'
  Dim str_ShpSnapshotName As String            '(変数)スナップショットShapeの名称
  Dim str_ShpBkupName As String
  str_ShpSnapshotName = "Snapshot01"            '「Snapshot01」を代入
  str_ShpBkupName = "Bkup01"                '「Bkup01」を代入

'-----------------------------------------------------------
' 初期処理(貼付対象シート・バックアップシートを事前にクリア)
'
  On Error Resume Next                  'Shapeが存在しない場合のエラー回避

  ThisWorkbook.Worksheets("Bkup").Activate
  Worksheets("Bkup").Shapes.SelectAll           'Shapeを全て選択
  Selection.ShapeRange.Delete               'Shapeを全て消去
  Worksheets("Bkup").Cells.Clear

  Worksheets("Snap").Activate
  Worksheets("Snap").Shapes.SelectAll
  Selection.ShapeRange.Delete
  Worksheets("Snap").Cells.Clear

  On Error GoTo 0

'-----------------------------------------------------------
' 写込防止のため、Excelのウィンドウ最小化
'(3秒Wait)
'
  Application.WindowState = xlMinimized
  Application.Wait Now + TimeValue("00:00:03")

'-----------------------------------------------------------
' Snapshot取得
'
  Application.ExecuteExcel4Macro "call(""user32"",""keybd_event"",""JJJJJ"",44,121,1,0)"
  Application.ExecuteExcel4Macro "call(""user32"",""keybd_event"",""JJJJJ"",44,121,3,0)"

'-----------------------------------------------------------
' 「Bkup」シート・「Snap」シートにSnapshot画像をPaste
' Shape.Nameを「Bkup01」・「Snapshot01」に設定
' Excelウィンドウを全画面表示
'
  ThisWorkbook.Worksheets("Bkup").Activate
  Worksheets("Bkup").Range("a1").Select
  Worksheets("Bkup").Paste
  Worksheets("Bkup").Shapes(1).Name = str_ShpBkupName

  Worksheets("Snap").Activate

'*************************************************************************
' クリップボードの画像を背景に設定(1枚のみ)
'
  With Worksheets("Snap")
    .Cells.ColumnWidth = 0.38
    .Cells.RowHeight = 3.75
    .SetBackgroundPicture Worksheets("Bkup").Shapes(str_ShpBkupName)
  End With
'*************************************************************************

  Application.Visible = True
  Application.WindowState = xlMaximized

End Sub

1 hits

【60339】クリップボードのキャプチャ画像をシートの背景にしたいのですが すう 09/2/11(水) 8:59 質問
【60340】Re:クリップボードのキャプチャ画像をシー... 横入り 09/2/11(水) 10:14 発言
【60341】Re:クリップボードのキャプチャ画像をシー... すう 09/2/11(水) 10:33 質問
【60342】Re:クリップボードのキャプチャ画像をシー... 横入り 09/2/11(水) 11:17 発言
【60343】Re:クリップボードのキャプチャ画像をシー... すう 09/2/11(水) 11:29 質問
【60344】Re:クリップボードのキャプチャ画像をシー... 横入り 09/2/11(水) 12:22 発言
【60345】Re:クリップボードのキャプチャ画像をシー... すう 09/2/11(水) 12:35 お礼
【60346】Re:クリップボードのキャプチャ画像をシー... sasa 09/2/11(水) 17:07 回答
【60348】Re:クリップボードのキャプチャ画像をシー... すう 09/2/11(水) 18:41 お礼
【60358】Re:クリップボードのキャプチャ画像をシー... Yuki 09/2/12(木) 17:13 発言
【60367】Re:クリップボードのキャプチャ画像をシー... すう 09/2/13(金) 23:54 お礼

21784 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free