質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

33380閲覧

VBA【クリップボード内のデータをペーストする方法】

Ashi

総合スコア139

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/09/13 02:18

初歩的な質問で恐縮ですが、クリップボード内に既にコピーされているデータを
Excelのシート状にペーストする場合のコードがうまく実行できません。

Sub Sample2() Range("A1").Copy Range("E1").PasteSpecial paste:=xlPasteValues End Sub

この状態だと問題なくコピペができるのですが、

Excelブック外(例えばWeb上のテキストなど)でコピーしたデータを
シート状にペーストしたいと思い以下のようにしたのですが

※Excelブック外でコピーをし、Excelシート上で以下を実行 Sub Sample2() Range("E1").PasteSpecial paste:=xlPasteValues End Sub

これがうまく実行できませんでした。

上記のコードはExcelシート状でコピー&ペーストを完結する場合でしか実行できないようでしょうか?

ご回答いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2017/09/13 03:27 編集

誤っていたので、コメント削除しました。
guest

回答2

0

ベストアンサー

web上の表を選択・コピーしたり、
以下のような(→はタブを表しています)タブ区切りのテキストファイルを選択・コピーしてから、

1→2→3

4→5→6

以下のマクロを実行すると、E1を左上隅とした範囲にペーストされますよ(WindowsのExcel 2016で確認しました)。

Sub Sample() Range("E1").PasteSpecial End Sub

コピーする元のデータが、シート状(方形の複数のセル)に対応するようなもの(タブ区切りテキスト、Web上の表など)であることが重要なように思われます。

投稿2017/09/13 03:09

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ashi

2017/09/13 06:34

ご回答ありがとうございます。 おっしゃる通り、上記のコードは実行できました。 ただ、「値のみの書き出し」が必要でして、 「paste:=xlPasteValues」を入れると実行ができなくなってしまう理由が良く理解できていません。 他に何か方法はありますでしょうか?
coco_bauer

2017/09/13 06:57

クリップボード上のデータが、ExcelのRangeとは異なる構造をしているためだと思われます。 値のみの書き出しであれば、" ActiveSheet.PasteSpecial Format:="テキスト", Link:=False, DisplayAsIcon:= False" もしくは "ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= False, NoHTMLFormatting:=True” が使えませんか?
Ashi

2017/09/13 07:57

出来ました!すごい! 本当にありがとうございます!とても参考になしました!
guest

0

このあたりが基本的な部分の参考にはなりそうです。

クリップボードを操作する(1)

クリップボードとデータのやりとりをする
[VBA]DataObjectを使ったクリップボード操作が上手くいかない場合の対処法

ですが、前にも言いましたが、クリップボードに格納されている構造体の形式を調べるなどが必要になると思いますので、スクレイピングのほうがまだ簡単では無いかと思いますよ。

投稿2017/09/13 02:48

sazi

総合スコア25300

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ashi

2017/09/13 06:35

いつもご回答ありがとうございます。 スクレイピングというもののやり方を少し調べてみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問