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

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

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

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

Q&A

解決済

2回答

906閲覧

エクセルのマクロでコピー&ペーストについて

ffhtfttfh

総合スコア18

VBA

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

0グッド

0クリップ

投稿2018/10/30 00:03

編集2018/10/30 01:15

こんにちは

前提条件
既に他のエクセルファイルで選択した範囲をコピーして有る状態

マクロの開始
A1にクリップボード内のデータを貼り付けたい

マクロ化したいのですが、下のように打つとコピーしても、
クリップボードが空ですと、メッセージボックスが出てきます。
しかし、手入力でA1を選択して、貼り付けすると、
コピーした範囲がペーストされます。

よろしくお願い致します。

Sub

1' 2' Macro1 Macro 3' 4 5' 6 7 Range("A1").Select 8 Dim CB As Variant, i As Long 9 CB = Application.ClipboardFormats 10 If CB(1) = True Then 11 MsgBox "クリップボードは空です。", 48 12 Exit Sub 13 End If 14 For i = 1 To UBound(CB) 15 If CB(i) = xlClipboardFormatBitmap Then 16 ActiveSheet.Paste 17 Exit For 18 End If 19 Next i 20 21End Sub 22 23コード

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

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

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

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

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

takito

2018/10/30 02:46

OSとExcelのバージョンは書いていただいた方がよいかも。関数名部分(sub hoge())が無いのは単なる記載漏れだと思いますが、コード自体は問題なく動きました。別のブックでctrl+cしたセルも、このマクロを実行するブック上のA1セルに貼り付けされました。何か情報として出し忘れていることは無いでしょうか?
guest

回答2

0

質問には「選択した範囲をコピーして」と書かれていますが、質問のプログラムには、「範囲を選択」するコードしかなくて、「クリップボードにコピーする」コードが抜けています。

どこかに

Selection.Copy

という「選択した範囲をコピー」するコードを追加したら解決しそうに思われますが、元のシートの"A:F"をコピーしたいのか、"A1"をコピーしたいのかが判りません。

Columns("A:F").Select Selection.ClearContents Range("A1").Select

の最初の2行で"A:F"の内容がクリアされますから、"A1"を選択しても内容は空です。
なにか思い違いがあるのではと思われます。

投稿2018/10/30 00:34

coco_bauer

総合スコア6915

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

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

ffhtfttfh

2018/10/30 00:38

既に他のファイルから選択してコピーしてある状態で、マクロを実行するため、 Columns("A:F").Select に関しては、ファイルのコピー先のセルに何か入っていたら消す様にしています。
coco_bauer

2018/10/30 01:01

「作業をマクロ化したい」と質問に書かれていたら、質問のコードが『他のエクセルファイルで選択した範囲をコピーして、入力表に打ち込む作業』のマクロだと思ってしまいます。 何をするコードが質問に書かれているのかを、もう少し分かりやすく説明してもらうと有難いです。
ffhtfttfh

2018/10/30 01:19

説明を変更致しました。 よろしくお願い致します。
ffhtfttfh

2018/10/30 01:20

変更致しました
guest

0

ベストアンサー

.ClearContentsによって選択範囲に関わらず、セルに関するクリップボードの情報もクリアされますので、メソッドを使用するならクリップボードの処理の後で使用して下さい。

投稿2018/10/30 01:36

編集2018/10/30 01:43
sazi

総合スコア25195

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

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

ffhtfttfh

2018/10/30 03:05

解決致しました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問