ここから本文です

excelマクロ copyメソッド について

rad********さん

2011/6/716:06:18

excelマクロ copyメソッド について

excelマクロ copyメソッド について質問です。
アクティブになっているシートのセルD2には,文字列を連結する,簡単な計算式があります。
これに対し,ユーザーフォーム上に
Range("D2").Copy
というコマンドを記述しました。
計算結果をメモ帳などの他のソフトにデータを貼り付けたいため,クリップボードに移動させたいのです。
しかし,マクロが走ってセルD2が選択された(コピーされた)状態でメモ帳でctrl+vをしても,結果が貼り付かず,ただ改行が挿入されるだけです。

いろいろ調べてみましたが,copyにオプションはないようだし・・・。

わかる方,ご教示願います。

補足1つ説明を忘れていました。
コピーするセルD2は,非表示となっています。
表示されている状態では問題ないのですが,非表示だとうまくいきません。
非表示でも同様に動作させる方法,ありますでしょうか。

閲覧数:
293
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

ja7********さん

編集あり2011/6/813:31:11

---補足に対して---
> コピーするセルD2は,非表示となっています。
まぁ、そういうことであれば、こんな感じでどうでしょうか。
あとは、API関数でClipboardを操作する方法でしょうね。
(やろうとしていることに対して、手間がつり合わないため略)

このコードは、VBEのメニューから[ツール]-->[参照設定]で
「Microsoft Forms 2.0 Object Library」にチェックを入れます。

Sub test()
' ※ Microsoft Forms 2.0 Object Library を参照
Dim ClpB As New DataObject
Dim ValD2 As String
ValD2 = Range("D2").Text
With ClpB
.Settext ValD2
.PutInClipboard
End With
End Sub

----------------
ちぁんと、CopyしたセルのTestがメモ帳に張り付きますよ。
計算式であろうが、その演算結果のTextが張り付きます。

> ユーザーフォーム上に
> Range("D2").Copy

このときアクティブなシートのD2のTextは、どうなっていましたか?
違うシートを対象にしていませんか?

質問した人からのコメント

2011/6/10 00:34:53

降参 おかげさまで実現できました。
ありがとうございました。

Microsoft Forms 2.0 Object Library,この名前はよく見かけるのですが,何者かは全くわからず。
勉強します!

ベストアンサー以外の回答

1〜1件/1件中

riv********さん

編集あり2011/6/814:03:12

私はやったことがありません。
下記を参考にしてください
http://officetanaka.net/excel/vba/tips/tips20.htm
何とかできそうです。

*--------*
たしかに非表示の時にはクリップボードにCopy出来ていませんね。
こういう逃げ方もあります。
Screenupdating=false
そのセルを非表示から表示へ
Copy
非表示へ
Screenupdating=true
いろいろ調べるのが面倒なときはどうぞ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる