ハマっている「お菓子」を教えて!

OSはWIN XP HOME, EXCELは2002を使用しています。
よろしくお願いします。

●現在の運用
1.全く別のアプリケーションの情報をコピー(ユーザー操作)
2.sheet1のセル"a10"を一度左クリック後、右クリックして貼り付け(ユーザー操作)
3.マクロ実行(ユーザー操作)

●上記の運用を以下のようにしたいと思っています。
1.全く別のアプリケーションの情報をコピー(ユーザー操作)
2.マクロ実行(ユーザー操作)

つまりマクロのはじめの部分に
Range("a10").Select
ActiveSheet.Paste
というような内容を挿入した後に本来のマクロを実行したいのですが、ActiveSheet.Paste のところで「Worksheetクラスの Paste メソッドが失敗しました。」と表示されてしまい、うまく行きません。

ユーザーがクリックする場所をA9や B10などを選択してしまうと期待する結果が出ないため、是非とも対応したいと思っています。よい方法はないでしょうか?

A 回答 (4件)

#1です.



>ユーザー操作で他のアプリケーションのコピーまでは行いますので、パソコンが一時記憶している状態のコピーデータを取り出す(貼り付ける)方法があればよいのですが・・・・
>ちなみに今、メモ帳とWORDからできるかどうか試してみましたが、問題なくできました。でも、同じアプリケーションのエクセルからは出来ないようです。

結論ですが,できます.
ただ,コピーするのがどんなデータなのか
詳細がわかればもう少し答えられるんですけど…
例えば,コピーするデータに
空白・改行等が含まれていると,
エクセルで貼り付けする際に
自動的に形式が決定されたりします.
    • good
    • 0
この回答へのお礼

ご回答どうもありがとうございました。

いろいろ試してみたのですが、どうやら私の質問そのものが間違えていたようです。
このやり方で他のアプリケーションのデータの貼り付けは可能なようです。
しかし、この質問をする前の私の実験ではエクセルの別BOOKを他のアプリケーションと想定して行っていたのですが、この場合のみ(エクセルの場合のみ)質問にあるようなエラーメッセージが出てしまうようです。

コピーするデータは、経理データの一覧のようなものです。空白や改行などはありますが、この後のマクロで処理していますので大丈夫かと思います。
とりあえず、解決いたしました。皆様どうもありがとうござました。

お礼日時:2003/08/31 16:43

以下ように修正してください。



ActiveSheet.Paste ---> Worksheets(1).Paste
    • good
    • 0
この回答へのお礼

ご回答どうもありがとうございました。

いろいろ試してみたのですが、どうやら私の質問そのものが間違えていたようです。
このやり方で他のアプリケーションのデータの貼り付けは可能なようです。
しかし、この質問をする前の私の実験ではエクセルの別BOOKを他のアプリケーションとして想定して行っていたのですが、この場合のみ(エクセルの場合のみ)質問にあるようなエラーメッセージが出てしまうようです。
とりあえず、解決いたしました。皆様どうもありがとうござました。

お礼日時:2003/08/31 16:29

別アプリの内容を別アプリでコピーするので、ClipBoard経由が易しい(またはせざるを得ない)のでは。


でもVBならClipboard.SetTextなど使えるようですが
エクセル・アクセスのVBAでは不可で、APIを使う方法が載っています。
http://support.microsoft.com/default.aspx?scid=k …
私は未経験ですが、これは使えませんでしょうか。
見当違いの場合はご免ください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。ご紹介いただいた内容を勉強してみます。

お礼日時:2003/08/31 16:14

いま手持ちの環境でテストできないのですけど,


マクロを実行するまえに
その対象シートをactiveにしておかないとダメかもしれません.
つまり,
 ・コピー
 ・シートを選択(シートのタブをクリックするとか)
 ・マクロ実行
という感じでしょうか.
もちろん,アクティブシートを指定するメソッドもあるので,
それをマクロに追加してもいいかもしれません.
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
他のアプリケーションとはEXCELでもWORDなどのMICROSOFTの製品でもない全く別のソフトなのですが、
EXCEL VBAから指定することはできるのでしょうか?

ユーザー操作で他のアプリケーションのコピーまでは行いますので、パソコンが一時記憶している状態のコピーデータを取り出す(貼り付ける)方法があればよいのですが・・・・
ちなみに今、メモ帳とWORDからできるかどうか試してみましたが、問題なくできました。でも、同じアプリケーションのエクセルからは出来ないようです。

お礼日時:2003/08/31 15:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A