GetClipText|クリップボードの文字列を取得 | Excel VBA
- yuji fukami
- 2024年12月28日
- 読了時間: 2分
更新日:1月4日

<概要 (クリップボード 取得 VBA)>
GetClipTextは、Excel VBAからWindowsのクリップボードに現在格納されている「文字列」を直接取得するための汎用プロシージャです。
Ctrl+Cでコピーされたテキストを、そのままVBA処理に取り込めるため、外部ツールや他アプリとの連携、自動入力・ログ取得・検証処理などに幅広く活用できます。
Microsoft Forms 2.0 Object Library(DataObject)を利用しており、画像がコピーされている場合でもエラーで止まらないよう安全設計されています。
クリップボード格納の文字列取得の用途としては以下のようなものがあります。
・コーディング途中のコードの一部をクリップボードに格納した状態で、イミディエイトウィンドウで専用の関数を実行させて、クリップボードの中身を取得して、その中身を変更して、さらにクリップボードに格納し直し、改めてコードをに貼り付ける。このような操作でコードの自動変換を行う。
実際の活用例(クリップボードとイミディエイトウィンドウを活用したコード自動整形テクニック) → https://www.softex-celware.com/post/clipimmediate
・文字列の等のRPAの処理
この汎用プロシージャの利用においては。 Microsoft Forms 2.0 Object Libraryライブラリー。のライブラリーを参照して利用できるようになるので、その点だけ事前設定が必要になります。

実際のコードは短いですが、具体的にクリップボードに格納されているのが文字以外、例えば画像とかスクリーンショットとかの場合もありえるので、それを回避するようにな処理を追加しております。
実行の確認に当たっては、何かしらの文字列をクリップボードに格納した状態で、このGetClipTextをイミディエイトウィンドウで実行して返り値を確認してみてください。
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。



