#788 フォームの埋め込みピクチャをコピーするには? フォーム、VBA

”フォーム”の「ピクチャ」プロパティに任意の画像ファイルを指定すると、その画像をフォーム全体、つまりヘッダーや詳細やフッターの各セクションに渡って表示させることができます。


しかし、「ピクチャタイプ」プロパティが「埋め込み」となっているフォームの場合、イメージコントロールなどをコピー&ペーストするのと違って、その設定を他のフォームに簡単に複製することはできません。ナビゲーションウィンドウでフォームをコピーして初めからデザインしていくか、プロパティシートの設定操作をすべてのフォームについて繰り返すことになります。

そのようなとき、簡単なVBAのコードを使って、あるフォームの設定値を他のフォームにコピーすることができます。

それには、コピー元と貼り付け先のフォームのデザインを開いた状態にして、次のようなコードをイミディエイトウィンドウに書き込み、Enterキーを押して実行するだけです。


Forms!フォーム2.PictureData = Forms!フォーム1.PictureData

  • ここでは「フォーム1」の画像を「フォーム2」にコピーしています。

  • 「PictureData」プロパティはプロパティシートには表示されませんが、埋め込まれた画像のデータを保持しています。つまり、表面的なプロパティ値をコピーするではなく、画像のバイナリデータそのものを複製する処理になります。

実行例:
■コピー元のフォーム


■貼り付け先のフォーム





【補足】
あるフォームの「ピクチャ」プロパティに画像ファイルを”新規に指定”したあと、他のフォームにも続けてそれを設定する場合はもっと簡単な方法があります。

プロパティシートの「ピクチャ」欄の右にある[...]ボタンをクリックすると、「図の挿入」ダイアログが表示されます。そこでフルパスで画像ファイルを選択すると、プロパティシートにはファイル名だけ(ドライブやフォルダ名はなし)が設定されます。
そのファイル名の文字列をコピーして別のフォームの同プロパティ欄にペーストするだけです。

ただし、データベースを閉じたりすると、Accessが内部的に保持していたそのドライブやフォルダの情報は消えてしまいますので、”ファイルが開けません”という状態になってしまいます。そのようなときでも上記のコードであればコピー可能です。

| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved