Wordでテーブルとして貼り付けるようにテキストをクリップボードに配置する方法は?
質問
MS OfficeでVBAを使用して、Windowsクリップボードにテキストを追加して、Wordに表として貼り付けるにはどうすればよいですか
解決
Windowsクリップボードは複数の形式をサポートしています。クリップボードに物を置きたいときは、RegisterClipboardFormat()を1回以上呼び出して、クリップボードに置くオブジェクトの形式を伝え、その後、実際にデータをクリップボードに置くSetClipboardData()を呼び出します。 。
表をWordに貼り付けることができるようにしたい場合は、HTMLを使用するのが最も簡単な形式です。 HTMLテーブルをクリップボードにコピーするだけで、クリップボードのデータを最初にHTMLオブジェクトとして登録した場合、Wordに正しく貼り付けられます。
コードを提供しますが、MSDNの例を参照するのが最も簡単です:
Visual Basicを使用してクリップボードにHTMLコードを追加する方法
このページには、HTMLテーブルをクリップボードにコピーする例も示されています。
他のヒント
Klugeの答えは正しいですが、MSDNのこの別の記事には、再利用しやすいより優れたコードがあります: http://blogs.msdn.com/jmstall/archive/2007/01/21/html-clipboard.aspx
HTMLテーブルとしてフォーマットしようとしましたか?
Windowsプログラミングを行ってからしばらく経ちましたが、オブジェクトの形式を登録したことを思い出すようです。実際、異なる形式の複数のオブジェクトを登録でき、貼り付けアプリケーションはそれらの中から選択できます(Wordの Paste Special
オプションなど)。
Wordテーブルオブジェクトを作成し、そのセルにデータを入力してから、クリップボードにコピーしようとします。
クリップボードは素晴らしい...しかし、プログラムからの出力を保持してWordに貼り付けるためにクリップボードを使用することについては、少し大雑把に思えます。あなたがしようとしていることは何ですか、おそらく他の方法でやるべきでしょうか?