- ベストアンサー
クリップボードへのコピー
教えてください。 フォームに貼り付けているフレームの中身のみをクリップボードにコピーしたいのですが、 それの方法がわかりません。 教えてください。
- TeamMSY
- お礼率5% (6/119)
- Visual Basic
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
クリップボードに渡す前に、ピクチャボックスを利用すると簡単です。 Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long Private Sub Command1_Click() Dim picWk As PictureBox Dim bytScale As Byte Dim blnRedraw As Boolean 'フォームのスケールを一時記憶 bytScale = Me.ScaleMode 'AutoRedrawを一時記憶 blnRedraw = Me.AutoRedraw 'フォームのスケールをピクセルにセット Me.ScaleMode = vbPixels 'AutoRedrawをFalseにセット Me.AutoRedraw = blnRedraw 'ピクチャボックスを作る Set picWk = Me.Controls.Add("VB.PictureBox", "picDmy") With picWk '初期設定 .ScaleMode = vbPixels .Move 0, 0, Frame1.Width, Frame1.Height .Cls .AutoRedraw = True '絵を張る Call StretchBlt(.hdc, 0, 0, picWk.Width, picWk.Height, Me.hdc, Frame1.Left, Frame1.Top, Frame1.Width, Frame1.Height, vbSrcCopy) End With 'クリップボードにセット Clipboard.Clear Clipboard.SetData picWk.Image 'ピクチャボックスを破棄 Me.Controls.Remove picWk Set picWk = Nothing 'フォームを元の状態に戻す Me.ScaleMode = bytScale Me.AutoRedraw = blnRedraw '適当な色つけ Call Form_Load End Sub Private Sub Form_Load() Me.Frame1.BackColor = RGB(Int(&HFF * Rnd), Int(&HFF * Rnd), Int(&HFF * Rnd)) End Sub
その他の回答 (1)
- todo36
- ベストアンサー率58% (728/1234)
デザイン時の話? CTRLキーを押しながらマウスを操作するべし。
補足
デザイン時の話ではないです。 プログラム実行中の話です。 実際に行いたいことは、フレームの中に表示されていることを、エクセルを起動して、そこのシートに貼り付けるということを行いたいのです。
関連するQ&A
- クリップボードの中身は、どうやって見るのですか?
クリップボードは、蓄積されるのですか?例えば、「コピー」をしてそのままにしておくとクリップボードに残っているのですか? クリップボードの中身が見たいのです。
- ベストアンサー
- その他(インターネット・Webサービス)
- コピーしてもクリップボードに入らない
解像度2000×1436の写真をコピーしてワードに貼り付けようとしてもできません。(640×480などはできる) クリップボードに「容量が大きすぎる」と掲示されます。メモリーは512MBあり、仮想メモリーは765に設定してあります。クリップボードの容量を増やして大きな解像度の写真をコピーするにはどうしたらよいですか。教えてください。
- ベストアンサー
- Windows XP
- クリップボードを空にできません コピーできない
エクセル上でコピーしようとしたら 「クリップボードを空にできません。 別のアプリケーションがクリップボードを使用している可能性があります」 と言うメッセージが出て、コピーができないのですが クリップボードを空にするにはどうすればいいですか? エクセル上で可能でしょうか?
- 締切済み
- Excel(エクセル)
- ページアクティブでクリップボードにコピー
フォーカス? というんでしょうか。 ページをアクティブにすると、クリップボードに 任意の文字をコピーできるようにしたいんですが、 方法はないでしょうか。 タブブラウザを使用しているとき、 そのページをアクティブにした際に、クリップボードへ 送れれば理想的です。
- ベストアンサー
- JavaScript
- リンクからクリップボードへコピー
JavaScript で、クリップボードへテキストを送る方法がありました。 それが以下のようなものですが、 <input type="button" value="クリップボードへ送る" onClick='window.clipboardData.setData("text","テキスト文字")'> これだとボタンを押す時にのみクリップボードへ送られますが、 URL 先へのリンクをクリックしたら、クリップボードコピーできるように したいのです。可能でしょうか。
- ベストアンサー
- JavaScript
- クリップボードとは
文字をコピーすると「クリップボードにコピーしました」と出るのですが、どこにクリップボードはあるのでしょうか。 F805を使ってます。
- ベストアンサー
- iPod・ウォークマン・音楽プレーヤー
- エクセルのコピペでクリップボードの中身が消える
エクセルであるセルをコピーして、そのあとペースト以外の操作をすると、クリップボードの中身が消えて、ペーストできなくなってしまいます。 たとえば、ペーストのためにctrl+Vを押すべきところ、shift+Vとかやる失敗をすると、クリップボードの中身が消えて、ペーストできなくなるので、コピーからやり直しになって面倒です。どこをコピーしたか忘れることも少なからず・・・。 クリップボードの中身が消さないようにするには、どんな設定をすればよいのでしょうか?
- ベストアンサー
- オフィス系ソフト
- クリップボードにコピー
よくスクリプト配布のサイトで見かけますが、 『クリップボードにコピー』と簡単にコピーができるようになっています。 そのスクリプト自体を 自分のHPに取り入れたいのでどうしてもほしいのですが、 よいサイトがあったら教えてください。 よろしくお願います。
- 締切済み
- JavaScript
お礼
できました。完璧です。 ありがとうございました。