参照設定の追加
クリップボードのデータはパワポで用意されているオブジェクトでは扱うことができない。(たぶん)
DataObjectというオブジェクトで扱うことができる。
このオブジェクトは、ライブラリ「Microsoft Forms 2.0 Object Library」にある。このライブラリは参照設定が必要で、以下のように設定を行う。
VBAを開く
メニューバーのツール > 参照設定 を開く
参照ボタンをクリック
ファイル「C:\Windows\System32\FM20.DLL」を開く。
OKボタンを押す。
Data Object
https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/dataobject-object
公式では多数あるが、オブジェクトブラウザでは以下のメソッドがある。
Clear
GetFormat
GetFromClipboard
GetText
PutInClipboard
SetText
StartDrag
Clear
あるオブジェクトやコレクションがもつすべてのオブジェクトを削除する。
object.Clear
GetFormat
DataObjectにある形式かどうかを示す整数値を返却する。
Boolean = object.GetFormat(format)
format
整数型か文字列型。
指定された型がDataObjectにある場合はTrueを返却する。
GetFromClipboard
クリップボードからデータをコピーする。
String = object.GetFromClipboard()
DataObjectはテキストと書式といった複数の項目を含めることができる。
ただし、テキストとテキストなど同じ項目を含めることはできない。
GetText
指定した形式でテキスト文字を取得する。
String = object.GetText([format])
format (optional)
データの形式を指定する文字列型or整数型。
指定しない場合、テキスト形式になる。
PutInClipboard
DataObjectからクリップボードにデータを移動する。
object.PutInClipboard
使用例
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/paste-putinclipboard-settext-methods-example
TextBox1コントロール、TextBox2コントロール、CommandButtonコントロールを用意。
TextBox1の方にValueを設定しておく。
CommandBoxをダブルクリックし、CommandBottonのコード書込み部分に以下をきさいする。
Dim MyData As DataObject
Private Sub CommandButton1_Click()
Set MyData = New DataObject
MyData.SetText TextBox1.Text
MyData.PutInClipboard
TextBox2.Paste
End Sub
スライドショーを開始し、CommandButtonをクリックすると、TextBox1の文字がTextBox2にコピーされる。クリップボードにも同文字列がコピーされているはず。
SetText
指定した形式でDataObjectに文字列をコピーする。
object.SetText(StoreData[, format])
StoreData
DataObjectに格納するデータを定義する。
format (option)
StoreDataの形式を示す整数型or文字列型。
DataObjectからデータを取得するデータ型がこれによって識別される。
1: テキスト形式
それ以外:ユーザ定義
デフォルトはテキスト形式。
DataObjectに引数と同じ形式のデータが格納されている場合は上書き。
別の形式のデータが格納されている場合は、既存のデータは維持されたまま新しいデータも保持される。
StartDrag
ドラッグアンドドロップ操作を行う。
fmDropEffect = Object. StartDrag([effect as fmDropEffect])
effect
fmDropEffectNone (= 0)
選択済みテキスト・オブジェクトをコピーも移動もしない
fmDropEffectCopy (= 1)
選択済みテキスト・オブジェクトをコピーする 。
fmDropEffectMovey (= 2)
選択済みテキスト・オブジェクトを移動する 。
fmDropEffectCopyOrMove (= 3)
ドロップ ソースをドロップ ターゲットにコピーまたは移動します。
ドラッグ操作は、現在のマウス ポインター位置で現在のキーボードの状態を使用して開始され、ユーザーがマウスを離すと終了します。 ドラッグ アンド ドロップ操作の効果は、ドロップ ターゲットに対して選択された効果によって異なります。
たとえば、コントロールの MouseMove イベントに StartDrag メソッドを含めることができます。 ユーザーがコントロールをクリックしてマウスを移動すると、マウス ポインターが変化し、ドロップ ターゲットに対して Effect が有効かどうかが示されます。