ExcelVBA 値をクリップボードにセットする

通常、Excelを操作している中では、Ctrl+Cでクリップボードに値をセットしていると思います。

この記事では、ExcelVBAを用いて、クリップボードに値をセットする処理をプログラミングしてみたいと思います。

0. この記事のまとめ

クリップボードに値をセットするには、MSForms.DataObjectを使用します。

参照設定にて、Microsoft Forms 2.0 Object Libraryを参照可能にする必要があります。

そのうえで、以下のコードを使用して、クリップボードに値をセットします。

以下のコードでは、https://usefuledge.comという文字列をクリップボードにセットします。

Dim DataObj As New MSForms.DataObject

DataObj.SetText ("https://usefuledge.com")
DataObj.PutInClipboard

Set DataObj = Nothing

1. MSForms.DataObject

MSForms.DataObjectクラスは、System.Windows.Forms名前空間で定義されているクラスです。

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.dataobject

このクラスの中には、GetAudioStreamなど様々なメソッドがありますが、この中で使用するものは、以下の2つです。

参照設定にて、Microsoft Forms 2.0 Object Libraryを参照可能にする必要があります。

2. 固定文字をクリップボードにセットする

冒頭で説明したものと同じコードですが、https://usefuledge.comという文字列をクリップボードにセットします。

Dim DataObj As New MSForms.DataObject

DataObj.SetText ("https://usefuledge.com")
DataObj.PutInClipboard

Set DataObj = Nothing

3. アクティブワークブックのファイルパスをクリップボードにセットする

以下のコードでは、アクティブワークブックのフォルダパスとファイル名を結合してファイルパスとして、クリップボードにセットします。

Dim DataObj As New MSForms.DataObject
Dim filepath As Variant
Dim Filename As Variant


filepath = ActiveWorkbook.Path
Filename = ActiveWorkbook.Name
DataObj.SetText (filepath & "\" & Filename)
DataObj.PutInClipboard

Set DataObj = Nothing

速攻でメモできる QuickNote リリースしました!

QuickNoteは動作が超軽量でサクサクかけるノートアプリです。一瞬の閃きを逃さずにノートを開き書き始めることができます。 アカウント登録も不要です。お試しあれ!

Excel操作をコマンドで! proBoarderExcel

Excelはマウスで操作するのが基本ですが、マウス操作に疲れてはいませんか? キーボードでExcel操作ができるようになるアプリです。オープンソースで無料です。

積み上げ! Daily Stack リリースしました!

Daily Stack は日々の積み上げを管理するToDoアプリです。過去の積み上げの振り返りだけでなく、ツイート機能もあります。 アカウント登録不要ですぐに使い始めることができます。

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱