• 締切済み

【VBA】クリップボードに格納したデータの操作

こんにちは。ExcelVBAについての質問です。 HP等の文字列をコピーして、テキストデータを取得するところまではできるのですが、 その内部にあるURLをどうやって取得したらよいのかで困っております。 例えば、HP上に【あいうえお】といったリンクがあるとします。 これをドラッグコピーしてクリップボードに格納しその テキストは New DataObjectのGetTextで取得できますが その場合、ただの「あいうえお」といったテキストデータになってしまいます。 その内部にあるhttp//・・・・・・・・ といったデータが取得できません。 ドラッグコピーでクリップボードに格納するだけではURLは取得できないのでしょうか? ドラッグコピーしたデータをセルをアクティブにしないで貼り付けると 文字が青色になりハイパーリンクになって張り付きます。 ということは内部のURL情報もクリップボードに格納されているということだと思いました。 説明下手で申し訳ありませんが、よろしくお願い致します。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

補足: 早い話、クリップボードの中で取れるテキストは、ソースなのです。 そのソースから取り出そうとしても、ハイパーリンクとしては役に立たなかったのです。そのコードをつなぎ合わせれば、出来るけれども……。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 今、マクロで試してみたのですが、取り出すことが出来なかったですね。 DataObject は、テキストデータのみですから、出来ないのは当たり前ですが、 しかし、今、API 関数の GetClipboardData で取り出してみたところ、私の環境では、 SourceURL は取れるのですが、個々のハイパーリンクは、取れませんね。 Debug.Print をみると、せいぜい、    <a href="c232.html">Office系ソフト のようにしか取れません。テキストの場合は、取り出したものを、一旦、つなぎ合わせないと、情報にはならないのかもしれません。 セルに貼り付けたものなら、取り出すのは出来るとは思います。 なお、IE7 では、コピーと、ショートカット・コピーがあって、ショートカット・コピーで貼り付けすると、そのまま取れてしまうのですが、あえて、IE7 をお勧めしません。

関連するQ&A

専門家に質問してみよう