業務効率化

Comboboxによるfolder、File閲覧とマクロ実行

タイトル

動的コンボボックスによるファイルフォルダをURL開いたり、マクロを実行するマクロです。事務的な業務ではいくつものマクロファイルや、フォルダがあり、それを開いたりマクロ実行するのは少し面倒です。VBAのユーザーフォームをプラットフォームにすることで、すべてのフォルダやファイルをボタン一つで開いたり、マクロ実行ができます。

記事の内容

・挙動

・コード

・ポイント機能

挙動

チェックシート関連の大項目に対して、チェックシート転記マクロと、ごみ箱のパスが記載されています。①チェックシート転記を選択した場合は、パスに基づいたファイルが開きます。もしマクロ列に値があり、プロシージャ名が記載されている場合はマクロも実行されます。

チェックシート転記マクロファイル開き、マクロ実行

②ゴミ箱開く&URL開くを選択した場合、パス列に入った「#]+[#」で文章が区切られ、記載されたごみ箱フォルダとURLそれぞれのパスが開かれます。

コード

ポイント機能

・UFによる大項目、小項目の取得

・MSファイル等ファイル、フォルダ、URLを開く

・#]+[#で複数パスを開く

・マクロの実行

UFによる大項目、小項目の取得

UFのコンボボックスから、大項目とその大項目にある小項目を選択します。こちらは、前回の記事で取り上げたものと同じです。今回のフォルダとファイルを取得するために、シート名やラベルを変更しています。

事例として、前記事で紹介した反版によるチェックシート関連フォルダ、ファイルを登録しているとします。ここでは、転記マクロと関連フォルダを登録しています(チェックシート関連の業務で二つが関係する設定でマクロファイルとフォルダを設定している定)。

UFでは、マクロ列に選択した項目があり、その項目に文字が入っている場合、マクロと見なして実行します。下記であれば、項目からチェックシート転記を選んで実行すると、マクロ列にある「P5P7表示」が取得され、マクロとして実行されます。ここでのマクロ名は、実行したいプロシージャ名を記入してください。

MSファイル等ファイル、フォルダ、URLを開く

パス列に記載されたパスを基にファイル、フォルダを開きます。エクセル、ワードやPDF等ファイル、フォルダが開かれます。 URLが記載されている場合は、表記から判断してエッジブラウザが立ち上がります。

もしエッジではない場合は、msedgeを右のように修正してください。Shell "cmd /c start chrome """ & FdandFlFullPath & """", vbNormalFocus

パスを開く際、日本語や記号等により開かないことやアプリによるエラー回避のため、Shell "cmd /c start msedge(アプリ名) """ & FdandFlFullPath & """", vbNormalFocusのように記載しています。

これはパスに日本語や記号等がある場合正常に開かない場合があるためです。これにより、MSファイルやブラウザに関わらずアプリ名の箇所とパス(FdandFlFullPath)を置き換えるだけで実行ができます。

フォルダ開く例

#]+[#による複数パスを開く

複数のファイルやフォルダにまたがって業務が必要な場合もあります。いくつかのパスを開く為、パス列下に#]+[#を挟んだパスを記載すると、その分のパスを同時に処理できます。

例えば、ごみ箱と指定のURLを同時に開きたい場合は、下記のように「ゴミ箱#]+[#URL」のように記載します。

実行を推すと#]+[#で区切られたパスそれぞれが同時に開かれます。台帳管理や情報取得で複数のファイルやフォルダ、サイトを開く必要がある場合に使用します。

マクロの実行

マクロの列から値を取得できた場合は、マクロプロシージャ名である前提で、開いたマクロファイルのマクロを実行します。マクロモジュールではなかったり、プロシージャ名が存在しなかった場合はエラーとなり、Msgboxが表示されます。

通常の場合は、パス選択後も続けて選択できるようにUFが表示されたままになりますが、指定マクロが記載されている場合は実行のためUFが閉じられます。

記載方法の例

マクロ記載時は、プロシージャ名を記載してください。記載方法は「項目+改行+プロシージャ名」です。何も記載がない場合は何も起きません。

-業務効率化