● Access2000Tips Win32 API クリップボードへ変数などの文字を送る、クリップボードの文字を取得する
この処理は、僕は(有)ロードシステム様のサンプルをそのまま使わせて頂いています。
このサイトは有益な情報がたくさんありますから、皆さんもぜひ見てみてください。
(有)ロードシステム様
http://www.loadsystem.jp/api/
http://www.loadsystem.jp/api/api15.htm の「Source」の内容・・・
http://www.loadsystem.jp/api/lsapi15.txt の内容を標準モジュールにコピペするだけで使えます。
Option Compare Database
Option Explicit
と書かれた先頭から、最後の行までをコピペします。
また、Excelで使いたい場合は、先頭行の「Option Compare Database」だけをカットしてOption Explicit の行以下すべてをコピペします。
Win10-1607+Access2000はもちろん、Win10-1703+Access2003 でも多分動作します。
(Win10-1703 は Access2000自体が正常に動かないのですが、多分使えます。mdbファイルを閉じた後、対応するAccessのプロセスをKillするプログラムを 作れば普通に使える気がしますが、それとは無関係にこのAPIは動くと思います。多分・・・(^^))
「Function ClipBoard_GetData()・・・・」のコードがクリップボードの文字列を取得するプログラムです。
「Function ClipBoard_SetData()・・・・」のコードがクリップボードの文字列を取得するプログラムです。
沢山の文字数をやりとりしたい場合は、プログラムの最初のほうの以下の行の「4096」という数字を「15000」とか「30000」とかに書き換えておきます。
クリップボードの文字数が多くて途中までしや取得できない場合や、変数に格納した文字の文字数が多すぎて、途中までしかクリップボードに送れないときなどに変えてください。
Public Const MAXSIZE = 4096
=========
● テスト方法
イミディエイトウィンドウで
ClipBoard_SetData("aaaaa")
と書いてEnterすれば、クリップボードに「aaaaa」という文字が送られます。
そしてその直後に、同じくイミディエイトウィンドウで
? ClipBoard_GetData
と書いてEnterすれば、先ほどクリップボードに送られた「aaaaa」という文字を取得できます(結果表示されます)。
もちろん、ClipBoard_SetData関数の引数はリテラル値じゃなくても変数でもOKです。
ClipBoard_SetData(変数名)
でも使えます。変数に文字列を格納した後、ClipBoard_SetData関数でその値をクリップボードに送れます。
- 投稿タグ
- Ac2000-Win32API