その他

Excelマクロのコピー&ペースト方法

  • Excelのマクロでコピー&ペーストのコードを知りたい
  • Excelのマクロを使ったRPAでコピー&ペーストをしたい

Excelのマクロを使ったコピー&ペーストのコードを複数個紹介いたします。

Excel内だけで使用できるコードやRPAでも用いれるようなExcel以外のアプリケーションからコピー&ペーストできるコードを紹介します。

目次
  1. セルを指定してコピー&ペースト
  2. SendKeysメソッドを使ったコピー&ペースト
  3. クリップボードを使ったコピー&ペースト
  4. サンプルコード「自動でweb検索するコード」

❶セルを指定してコピー&ペースト

RangeやCellsを使ってセルを指定し、コピー&ペーストを実行する方法です。

短いコードで簡単に使えるためお手軽ではありますが、Excel内でしか使用できません。

下記にRange及びCellsを使ったサンプルコードを示します。

コピー&ペーストをするためのコードとしては同じ作りになっています。RangeとCellsのどちらを選択するかはそれぞれの特性によって使い分けをお願いします。

➋SendKeysメソッドを使ったコピー&ペースト

Excelでは使用頻度の多い機能にはショートカットキーが設定されています。

コピー及びペーストにもショートカットキーが設定されており

  • コピー:Ctrl + c
  • ペースト:Ctrl + v

となっております。

ショートカットキーの機能と疑似的にキーボード操作ができるSendKeysメソッドを組み合わせることでコピー&ペーストが可能です。

この方法であればExcel以外のアプリケーションでのコピー&ペーストでも可能となりますが、安定性に難があります。

Waitメソッドを使って処理時間を作ったり、DoEvents関数を使って他のイベントを処理できるようにする必要性があります。

❸クリップボードを使ったコピー&ペースト

続いて紹介するのはクリップボードに直接働きかけてコピー&ペーストを行う方法です。

Windows APIの機能を使ったり、コード自体が先に紹介した方法より複雑だったりしますが、使い方によっては安定的にコピー&ペーストを行うことができます。

特にRPAなどでExcelでのコピー動作やExcel以外のアプリケーションでコピーした内容のExcelへのペーストなどで安定的に運用できるかと思います。

「Mirosoft Forms 2.0 Object Library」にチェックを入れる

この方法を使用するには下記のような準備が必要です。

1.Visual Basicから「挿入>ユーザーフォーム」を選択

2.「ツール>参照設定」を選択

3.「Mirosoft Forms 2.0 Object Library」にチェック

セルの値をクリップボードへコピー

下記コードで指定したセルの値をクリップボードへコピーできます。

サンプルコードではCellsでセルの指定をしていますがRangeでもOKです。

クリップボードの値をペースト

下記コードで指定したセルにクリップボードの値をペーストすることができます。

サンプルコードではCellsでセルの指定をしていますがRangeでもOKです。

このコードを使用すればExcel以外のアプリケーションでコピーをしたのも安定して指定したセルにペーストすることができます。

クリップボードの値をクリアにする

クリップボードの値をクリアにするにはWindows APIの機能を使用します。

下記にあるのが使用する関数の宣言コードです。WindowsOSが64bitか32bitかでコードが違います。

コードの本文は下記のようになります。

❹サンプルコード「自動でweb検索するコード」

下記コードは本記事の

  • 2. SendKeysメソッドを使ったコピー&ペースト
  • 3. クリップボードを使ったコピー&ペースト

及び別記事「Excelマクロを使ったRPA」の内容を駆使して作成した「自動web検索するコード」です。

「A1」の値をweb検索し、URLをコピーして「B1」に張り付けます。
webサイト内の座標を修正すれば使えると思いますので参考にしてみてください。