• ベストアンサー
  • 暇なときにでも

クリップボードをクリアするVBAコマンド

今、複数のCSVファイルを一枚のエクセルシートにまとめる マクロ(少しVBAを交えながら)作っています。 CSVファイルを開いて、データすべてをクリップボードにコピーしていく、、という作業の繰り返しマクロです。 1ファイルをシートに移した後、いったんクリップボードをクリアして、次のファイルを読み込みたいのですが、 クリアするコマンドがわかりません。 ご指導ください。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数11105
  • ありがとう数8

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • mml
  • ベストアンサー率55% (5/9)

なぜクリップボードをクリアしたいのかがよくわかりませんが・・・領域が選択されたままでブックなどを閉じると「○○に大きなクリップボードがありますが~?」ってのを表示させたくないのでしたらコピー・ペースト後に Application.CutCopyMode = False とすると選択範囲がクリアされ、あたかもクリップボードがクリアされているような「感覚」になりますが・・・ (詳細はヘルプを参照してください) 趣旨とちがってたらすみません :-)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

複数(30くらい)のファイルを開いて、コピーを繰り返すので、途中で「クリップボードがいったいになりました。クリアしますか?」のメッセージでクリアしないと進まないのです。で、あれば、1ファイルコピーの後、必ずクリアにする処理を加えようかと。。。 mmlさんのアドバイスだと、実際にはクリアされてない、 んですよね。

質問者からの補足

mmlさん、ありがとうございました。 私の方がきちんと理解できずにいました。すみません。 mmlさんのアドバイスで、きちんと処理できました。 ありがとうございました!

関連するQ&A

  • シートのデータをクリアしてクリップボードの内容を貼り付ける方法

    シートのデータをクリアしてからクリップボードのデータを貼り付けるマクロを作成しています。 ■処理内容 Sheets("Sheet1").Cells.Clear Sheets("Sheet1").Paste 別アプリのデータをクリップボードに保存した場合は問題ないのですが、同一のエクセルウィンドウ内にあるセルデータをコピーした場合、Cells.Clearを実行した時点でシートのデータだけでなくクリップボード内のデータも消えてしまう為、張り付けることができません。 ※クリップボード内のデータを消さずにシートの内容をクリアする方法はありますか? よろしくお願いします。

  • エクセルVBAでクリップボード内容をクリア

    こんにちは。 エクセルのVBAの処理の中で、ある部分をコピーしてそれを、 貼り付けする処理をしています。 処理終了後、ファイルを閉じるときに、クリップボードに コピーの内容が残っている旨のメッセージがでてきます。 このメッセージを出さない様に、クリップボードの内容を クリアするにはどのようにすればよろしいでしょうか? 申し訳ありませんが、お教え頂きますようお願いいたします。

  • エクセルVBAでCSVを読み込んで別ファイルにまとめたいです。

    エクセルVBA初心者の者です。 マクロの記録でできたコードをいじって、 なんとか動くものができるレベルです。 Aというフォルダに20~40行程度の内容のCSVファイルが 数百個あります。開けてみないと何行あるのかわかりません。 そのAフォルダのCSVの内容をエクセルで開いて、別のエクセルファイルの一枚のシートにまとめたいのです。 最初にCSVファイル名を一枚のシートのA列に書き出すところ まではやれたのですが、それを順番に読み込んでコピペの 流れができません。 CSVファイル名読み込み 読み込んだファイル1つめCSV開く CSVの20~40行をコピー 別のエクセルファイルのシートに貼り付け 1つめCSV閉じる ↓ 読み込んだファイル2つめCSV開く 繰り返し こういうやり方じゃない方がいいのかもわかりません。 もしかして考え方も違うのでしょうか? サンプルコード教えていただけるとありがたいです。 よろしくお願いします。

その他の回答 (2)

  • 回答No.3
noname#420
noname#420

先ほど回答した者ですが、参照先が多少異なってましたので訂正します。こちらです。 [AC97] クリップボードへ情報を送信する方法 最終更新日: 1998/03/31 文書番号: J026856

参考URL:
http://www.microsoft.com/japan/support/kb/articles/J026/8/56.htm

共感・感謝の気持ちを伝えよう!

  • 回答No.2
noname#420
noname#420

EXCELでクリップボードをクリアにするには Win32 API 関数 を使用するしかないような気がします。 一度、マイクロソフトのホームページの [AC97] クリップボードから情報を取り出す方法 最終更新日: 1997/04/11 文書番号: J026857 を参考にされてはいかがですか。 (当たり前ですが、EXCEL97で試しましたが動きました)

参考URL:
http://www.microsoft.com/japan/support/kb/articles/J026/8/57.htm

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 ただ、難しそうですね。

関連するQ&A

  • Excel2007で2003のVBAが実行時エラー1004

    普段は事務員の非プログラマーです。 Excel2000,2003で動いていたマクロを2007でも動くようにしてほしいと言われて頑張っているのですが、どうすればいいのか見当がつきません(*_*) どうぞ知識者の皆様のお知恵をお貸しください。 Excel2003で読み取りのみのVBAのファイルで、ボタンを押すとマクロが実行され、別CSVファイルを指定しVBAのファイルの別シートとして読み込みます。次に別txtファイルを指定してVBAのファイルの別シートに読み込みます。最後にその2つのシートの必要な個所のみ結合して、新しいcsvファイルとして保存する処理をしています。 Excel2007でこれを実行すると、csvファイルを読み込むときに次のようなエラーがでます。 「実行時エラー'1004':移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー]コマンドと[貼り付け]コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。 マクロの中身はこのような感じです。 エラーは最終行の「ActiveSheet~」ででています。 Sub openExcel() 'Step1 open excel Dim ExcelFileOpen As String ExcelFileOpen = Application.GetOpenFilename(FileFilter:="Excel Files,*.csv") If ExcelFileOpen <> "False" Then Workbooks.OpenText Filename:=ExcelFileOpen ActiveSheet.Move After:=Workbooks(ThisWorkbook.Name).Sheets(1) どうぞよろしくお願いいたします(_ _)

  • エクセルのマクロでクリップボードの使い分け。

    マクロ初心者です。任意のシートの任意の列(先に選択しておきます。)とそのシートのA列を特定のシートの2列に並べてコピーしたいのですが、クリップボードを使ってマクロ記録をしても、実行すると貼り付けの段階でエラーが起こります。クリップボードの中身を一つ目のデータ、二つ目のデータというように、選択して貼り付けすることは無理なのでしょうか。あるいは、一つ目のデータをコピー・貼り付けした後、元の任意のシートに戻る方法はないでしょうか。どなたか教えてください。よろしくお願いします。Excel2000を使っています。

  • エクセルで別ファイルのシートの貼り付けマクロ

    マクロ初心者です。よろしくお願いします。 excelファイルのシートに同じシート名csvファイルのデーターの貼り付けをしたいのです。 ↓詳しくは。 excelファイルがあります。(ファイル名:全社) シート名=集計、1、2、3、4、5、6、7、8、9、10(固定) csvファイルがあります。1~始まり数は変動(1~3だったり、1~7とか) 1ファイル=1シート、ファイル名とシート名は同じ excelファイルのシート(1~10)に、開いたcsvファイルの同じシート名(1~10)のデータを貼り付けたい。 毎回コピー・貼り付けの繰り返し作業なので、マクロ作成を試しているのですが、うまくいきません。 教えてください。お願いします。

  • エクセルでVBAを使ってセキュリティカードのデータ管理をしたい

    いつもお世話になります。VBA初心者です。 会社でセキュリティカードの導入を検討しているのですが、カード内に2種類のコードがあり、それぞれ別のプログラムで読みこんだものを手作業で紐付けなければならないので登録が難しく、VBAである程度登録を簡素化できないかと考えて投稿いたしました。手作業で行う場合の流れは以下のとおりです。 (1)プログラムを立ち上げ、登録する個人の個人コードを手打ち入力した後にセキュリティカードをリーダーにかざす。 (2)その後「保存」ボタンをクリックすると、所定の位置にCSVファイルが保存される。 (3)別プログラムを立ち上げ、リーダーにカードをかざすと、もう一種のコードデータがクリップボードにコピーされる。 (4)エクセルの管理表(A列に個人コード、B列に個人名;重複なし)を開き、CSVファイルも開く。 (5)CSVファイルのデータを個人コードをキーにして、VLOOK等でC列の該当するセルに紐付ける。 (6)紐付けられた該当セルの横のセル(D列)にクリップボードに保存されているコードデータを貼り付ける。 という流れなのですが、クリップボードからデータを貼り付ける作業が手作業なので、間違える可能性が高いです。 そこで、VBAを使って以下のような作業にしたいのです。 (1)CSVファイルとクリップボードにコードデータを保存する。 (2)管理表のエクセルデータを立ち上げ、プログラムを起動する。 (3)プログラムで自動的にCSVファイルのデータを読み込み、該当するセル(C列)にコードデータを割り当てる。 (4)該当したセルの横(D列)にクリップボードにコピーされているデータを貼り付ける。 という流れにしたいのですが、やり方をご存知の方、ご教授ください。

  • excel vbaで複数のcsvファイルの読み込み

    100シート分のcsvファイルのデーターを一つずつ読み込んでexcelにコピーして使用してますが莫大な時間がかかって困ってます。 vbaを使用して作業を簡素化出来る事は出来ないでしょうか? ------------------------------------------ ※ csvの概要 excelで1枚のcsvファイルを開くとA列の11行目から65536行まで数値データがあります。 ※ vbaできたらよいなと思う仕様 そこで、複数のcsvファイルを選択して読み込むとCSV_データと言うSeetのA列の10行目から1枚目のcsvファイル、B列の10行目から2枚目のcsvファイルと言う風に選択した分のcsvを列に続けて数値データを貼り付けしてくれるvbaをご教授していただけると大変助かります。 不躾で申し訳ございませんが宜しくお願い致します。 excel2003 ------------------------------------------

  • クリップボードにデータを送る(コピーする)には?

    vbaでクリップボードにデータを送る(コピーする)には? エクセルです。 Sub Macro() Selection.Copy End Sub で、クリップボードにデータを送ってることになりますよね? 「どこかのセルをコピーする」ではなく、例えば「abc」という文字をコピーさせて、 いつでも貼り付けられる状態にしたいのですが、vbaでそういうことは可能ですか? Sub Macro() "abc"をクリップボードに送る End Sub 的な事がしたいです。

  • EXCELのVBAについて教えて下さい。

    VBA初心者です。 EXCEL操作は今まで何度もやっていて大体のことは分るのですが、この度、仕事の関係でマクロ、VBAを初めて使わなくてはいけなくなりました。早速はじめからつまずいています。どうか私にご教授くださればと思います。 やりたいことというのが、 (1)毎日の仕事として、まず、サーバーにあるデータを集計しcsvファイルとして保存します。 (2)そのcsvファイル(ファイル名:今日落としたファイルなら○○050620.csv)を××.xlsというファイルのワークシートにコピーします。 (3)その集計した表をピボットテーブルでさらに分りやすく分別。 (4)そのピボットテーブルからでてきた数字を××.xlsのSheet1の表のあてはまるところに数字をコピーし貼り付けていきます。 それによってグラフができます。 この操作の流れのうち(2)(3)(4)の部分をマクロニ組んでしまいたいのです。なかなかうまくいかないので良い方法を教えてください。ちなみにcsvファイルは毎日の作業なので年月部分のファイル名が毎日の日付が入ります。

  • VBAでデータ更新作業自動化

    エクセルで、シート1に顧客データ(会員番号、氏名、住所等)が有り、シート2の入力セルに会員番号を入力すると、シート1の顧客データがVLOOKUP関数により呼び出されるというエクセルファイルがあります。シート1の顧客データは、別システムでデータ更新しており、USBメモリにCSVファイルとして定期的に抽出しています。このCSVファイルのシート1の最新顧客データを元のエクセルファイルのシート1にすべてコピー&ペーストすることで最新の顧客データを更新しています。 このたび、その作業の自動化を図るにあたり、元のエクセルファイルのシート2で作成したボタンを押下することにより、自動実行したいのです。 お忙しいところ大変申し訳ないですが、そのような他ファイルに及ぶVBAの記述を教えていただけたらありがたいです。よろしくお願いします。

  • VBA?C?なにを使えばよいでしょうか

    あるアプリケーションにデータ登録をするときに、現在はコマンドプロントから コマンド(c:\>xxxxx -***** "name" "age" ・・・・)を打って登録しています。 最近急に、データ量が増えて手動で登録するのが困難になってきました。 現在このデータはエクセルで保存してあります。これからも、エクセルで 管理していく予定です。 そこで、エクセルに入力したものをエクセルVBAを使ってセルからデータを 取り出して、1件づつ自動でアプリケーションに登録するコマンドを発行したい と考えています。 それか、エクセルのデータをCSV形式にしてC言語で作ろうかとも思っています。 実現したいことは ・データはエクセルで管理している。 ・毎回手動でコマンドをたたいていたのを、プログラムで実現させたい。 (DOSにコマンドを発行する) ・データの入力はCSVを読むか、エクセルシート上でセルからひっぱって くるか。 VBA、Cともに初心者です。どの言語でどういう風な形で プログラムを作ればよいかわからず困っています。 実現するよい方法をおしえてください。よろしくおねがいします。

  • word2016のVBAでクリップボードの操作

    word2016のVBAでクリップボード内のデータを操作することは可能ですか? Application.ClipboardFormats は、エクセルでしか使えないようでした。

専門家に質問してみよう