ドラッグ&ドロップでファイル追加できるリストボックスの作成
https://reta-slot.com/access-drag-and-drop
公開日 : 2015年9月19日 / 更新日 : 2018年7月9日
この記事の方法はつい先日まで不可能でした。なぜならVB6.0を使うものの、KillBitされており、参照できなかったからです。
しかし、先日ProgressBarがなぜか復活しているので、今はできます。最も、過去、32Bit系のコントロールはトラブルを起こしており、自然とすたれてきているため、これを積極的に使用することはためらわれます。
しかしながら、この方法は間違っています。
これはWeb BrowserControlを使うと、VB6.0系のコントロールを使う必要がないためです。
Windows7 に VB6.0 をインストールするとエラーが出る
Web Browserの表示
アーリーバインディングでiFrame.exeを追加します。
こうしないと表示されません。
.AddFromGUID "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 1, 1'SHDocVw Microsoft Internet Controls C:\Windows\System32\ieframe.dll
つまりこれです。
なお、Wordでこれをやろうとする人は
Accessにも参照設定してください。
.AddFromGUID "{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}", 9, 0'Access Microsoft Access 16.0 Object Library C:\Program Files\Microsoft Office\root\Office16\MSACC.OLB
これは先日のExcelのVBA開発用のプロシージャーテンプレートのAddreferenceで出てきます。
ACCESSでファイルのドラッグアンドドロップ
セオリーとコードはこちらです。
ここでは「ここではmscomctl.ocxがインストールされていない環境でも作動する方法を載せてみます。」と断っていますが、mscomctl.ocxの不安定さを考えるとWebBrowserの方がまだましかもしれません。
最もInternet Explorerの先行きを考えると不安はあります。
Accessを参照設定していると、変数として宣言しなくてもAccess.NzでNz関数が使える。
これが今回のポイントです。
あと上記サイトのコード中、
テキスト2 = URL '←併せてファイル名をテキストボックスに表示させ
となっているところは、フォームにテキストボックスを配置したときのTextbox1の間違いか、テキストボックスにテキスト2
という名前をつけているのかもしれません。
なぜWordで検証しているのか
これは疑問に思われる方もいらっしゃると思います。これはWordで動くなら、ほかのすべてのOfficeアプリで使えることになるためです。