• 締切済み

Excel VBA クリップボードの処理方法

HohoPapaの回答

  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.1

CreatePictureFromClipboard これがよくわかりませんが... >2つ目のブックを開いて この直前に DoEvents を実行することで解決できるかもしれません。

katsu4429
質問者

お礼

コメント有難うございます。 DoEventsを入れてたんですが上手くいかなかったのでした。 もしかしたら処理を入れる箇所が違ったかもしれないので 再度確認してみます。

関連するQ&A

  • VBAについてです。

    VBAについてです。 当方VBA初心者です。初歩的な質問があり投稿しました。 Workbooks("aaaa.xlsx").Worksheets("aaa").Range("A3:A50").Copy _ Workbooks("bbbb.xlsx").Worksheets("bbb").Range("A2") というコピーはできるのに Workbooks("aaaa.xlsx").Worksheets("aaa").Range(cells(3, 1), cells(50, 1)).Copy _ Workbooks("bbbb.xlsx").Worksheets("bbb").Range("A2") というコピーはどうしてできないのでしょうか? また、最下行を判別して Workbooks("aaaa.xlsx").Worksheets("aaa").Range(cells(3, 1), cells(最下行, 1)).Copy _ Workbooks("bbbb.xlsx").Worksheets("bbb").Range("A2") という様に簡単に処理したいのですが、やはり無理なのでしょうか? ブックが違うのですが、これをなんとかこのような処理にしたいと思っています。

  • VB2005でクリップボードにコピー

    VB2005でPicture1のイメージをクリップボードにコピーし Picture2.imageにペーストすると Picture2の画面がすべてブルーになつてしまいます。 プログラムはサンプル(microsoft Document explorerから)をダウンロードしべつのプログラムに貼り付けただけなのですが。 'ピクチャをピクチャ ボックスからクリップボードにコピーします My.Computer.Clipboard.SetImage(PictureBox1.Image) 'クリップボードにイメージが存在する場合、そのイメージをピクチャ ボックスに貼り付けます If My.Computer.Clipboard.ContainsImage Then PictureBox2.Image = My.Computer.Clipboard.GetImage Else MsgBox("Clipboard does not contain an image", MsgBoxStyle.Exclamation And MsgBoxStyle.OKOnly) End If

  • エクセルVBAでクリップボード内容をクリア

    こんにちは。 エクセルのVBAの処理の中で、ある部分をコピーしてそれを、 貼り付けする処理をしています。 処理終了後、ファイルを閉じるときに、クリップボードに コピーの内容が残っている旨のメッセージがでてきます。 このメッセージを出さない様に、クリップボードの内容を クリアするにはどのようにすればよろしいでしょうか? 申し訳ありませんが、お教え頂きますようお願いいたします。

  • VBScriptでクリップボードにコピーする方法

    VBScriptでクリップボードにMsgboxの出力データをコピーする方法がわかりません。 ちなみにMsgboxの出力データは変数で、処理の流れとしてMsgboxのすぐ後に クリップボード上に変数をコピーをするようにしたいと考えています。 ネットで検索した結果、下記内容がありましたが、1年前くらいにまったく同じ目的のVBScriptを作成したことがあり、その時は特に制限なく目的のVBScriptが作成できたので、どうも納得できません。 その時のを残しておけばよかったと今になって後悔。。。しかもどうやったか忘れた。。。。 ===ネット検索結果=== WSH と VBScript のいずれにもクリップボードを操作する機能はありません。どちらを使用しても、クリップボードにデータをコピーしたりクリップボードからデータを貼り付けたりすることはできません。一方、Internet Explorer ではクリップボードを操作することができます。 他にもネット上で、とりあえずInputBoxに出力してコピーするような流れの内容がありましたが、今回の目的(見栄えとして)として、どうしてもMsgboxのすぐ後で処理させたいのでわかる方おりましたら宜しくお願いします。

  • Picture Managerにてクリップボードへコピーしたい

    Picture Managerにてクリップボードへコピーしたい 1.Microsoft Office Picture Managerへクリップボードにて貼り付け 2.上記画像をトリミング 3.トリミングした画像をクリップボードへコピーできない!! やり方が悪いのでしょうか?

  • Excel VBAで参照先の変換

    ExcelのVBAでBook1.xlsxのSheet2とSheet2を参照しているSheet3をBook2.xlsxにコピーするプログラムを作成しているのですが、Sheet3のコピーが思うように行きません。 具体的にはSheet3が参照しているSheet2をBook1.xlsxからBook2.xlsxに変換する所です。 下記のようなプログラムを作成しました。 strDirectory = ThisWorkbook.Path strSrcBook = "Book1.xlsx" Workbooks.Open Filename:=strDirectory & "\" & strSrcBook, ReadOnly:=True Set wsSrc = Workbooks(strSrcBook).Worksheets("Sheet2") Set wsDst = ThisWorkbook.Worksheets("Sheet1") wsSrc.Copy After:=wsDst Set wsSrc = Workbooks(strSrcBook).Worksheets("Sheet3") Set wsDst = ThisWorkbook.Worksheets("Sheet2") wsSrc.Copy After:=wsDst wsDst.Range("D:D").Replace "[*]", "" Workbooks(strSrcBook).Close SaveChanges:=False Sheet3のD列がSheet2を参照しているのですが、上記を実行すると開くファイルの選択を要求され、キャンセルし続けると実行が完了しますが、コピーされたSheet3の参照先が正しく変換されずエラー表示となってしまいます。 「wsDst.Range("D:D").Replace "[*]", ""」が完了する前に「Workbooks(strSrcBook).Close SaveChanges:=False」が実行されてしまうのが原因と思われるのですが、実際のプログラムでは開くBookは1つではなくSheet1に記載したリストを順番に開いてコピーするという事を行っている為、作業が完了したBookは閉じるようにしたいです。 どの様に修正すれば「wsDst.Range("D:D").Replace "[*]", ""」が完了するのを待って、「Workbooks(strSrcBook).Close SaveChanges:=False」が実行されるように出来るのでしょうか?

  • Excel VBA 指定シートの取込

    こんにちは。 ExcelのVBAを使用して、異なるBookのシートを取込みたいのですが、 シートが無かった場合の処理方法がわかりません。 現在のコードは下記の様になっております。 With Workbooks.Open"BOOK1.xls" .Worksheets("Sh1").Cells.Copy ThisWorkbook.Sheets("Sheet1").Range("A1") .Worksheets("Sh2").Cells.Copy ThisWorkbook.Sheets("Sheet2").Range("A1") .Worksheets("Sh3").Cells.Copy ThisWorkbook.Sheets("Sheet3").Range("A1") .Close End With Book1に指定したシートが無い場合、何もしないようにしたいのですが、 どの様に書き換えれば宜しいでしょうか? よろしくお願いします。

  • EXCEL/VBA 変数の値をクリップボードにコピーする方法

    EXCEL/VBAで、変数Xの値をクリップボードにコピーする方法を教えて貰えませんか。下記のように変数Xを一度セルに代入すると出来ますが、変数Xを直接クリップボードにコピーする方法が分かりません。 宜しく、お願いします。 Range("a1") = X Range("a1").Copy

  • クリップボードにデータを送る(コピーする)には?

    vbaでクリップボードにデータを送る(コピーする)には? エクセルです。 Sub Macro() Selection.Copy End Sub で、クリップボードにデータを送ってることになりますよね? 「どこかのセルをコピーする」ではなく、例えば「abc」という文字をコピーさせて、 いつでも貼り付けられる状態にしたいのですが、vbaでそういうことは可能ですか? Sub Macro() "abc"をクリップボードに送る End Sub 的な事がしたいです。

  • エクセルVBAでエラー、Changeの使い方が×?

    エクセルVBAでBOOK1のsheet1とsheet2とsheet3があり、 sheet1とsheet2の全ての情報をsheet3にコピーしてまとめるようにしました。 マクロを実行するには、Visual Basicを開いてF5を押しています。 それをsheet1かsheet2の中身の一部分でも変更すると そのときに自動的にマクロが実行されるようにしたいです。 sheet1とsheet2とsheet3に Private Sub Worksheet_Change(ByVal Target As Range) Call マクロ() End Sub を入れ、 標準モジュールに Sub マクロ() Workbooks("BOOK.xlsm").Worksheets("sheet1").Range("C1:BE50").Copy _ Destination:=Workbooks("BOOK.xlsm").Worksheets("sheet3").Range("C1:BE50") Workbooks("BOOK.xlsm").Worksheets("sheet2").Range("C1:BE100").Copy _ Destination:=Workbooks("BOOK.xlsm").Worksheets("sheet3").Range("C51:BE150") Dim UsedCell As Range Dim Max_Row, RowCount As Integer Set UsedCell = ActiveSheet.UsedRange Max_Row = UsedCell.Cells(UsedCell.Count).Row Application.ScreenUpdating = False For RowCount = Max_Row To 1 Step -1 If Application.WorksheetFunction.CountA(Rows(RowCount)) = 0 Then Rows(RowCount).Delete End If Next Application.ScreenUpdating = True End Sub をやって、sheet1かsheet2のセルを変更すると エクセルが固まってしまいます。 デバックでは最初の Workbooks("BOOK.xlsm").Worksheets("sheet1").Range("C1:BE50").Copy _ Destination:=Workbooks("BOOK.xlsm").Worksheets("sheet3").Range("C1:BE50") がよくないようです。 書き方が間違っているのでしょうか?