見出し画像

【Excel VBA】散らかったデスクトップ画面をVBAでクリーニング

社内で利用している自分のパソコンは、なぜに、あんなにもショートカットが増えるのかいまだに疑問です。
まるで、雑草のようですね。
そんな散らかった、デスクトップ画面をクリーニングします。
散らかったデスクトップ画面をVBAでクリーニング


こんにちは。伊川(@naonaoke)です。
今回は、少し、ゆるい内容を紹介します。
月に何度か、デスクトップ上のアイコンを整理することはありませんか?
私はあるあるなのです。
リンク切れのショートカットキーや、全然利用しないショートカットと思いきや、
「このファイルどこにあるの?」
って、半ギレで言ってくる輩等。
まさに、外に出ると7人の敵が待つという状態ですね。
私など、敵ばかりです。
そんな悩みは、Excelでリンク集を作成しましょう。
きっと、あなたのデスクトップ画面は綺麗になるはずです。

このブログはこんな人にお勧め

VBAを勉強し始めた人
散らかっているデスクトップ画面が嫌な人
いつも、同僚や、上司に ファイルの有か確認される際に、理不尽切れられているか弱い人

このブログを、読み終わるころには・・・・

今回は、カンタンなVBAです。
読み終わる頃には、VBAは便利だと実感できると思います。
あなたのデスクトップ画面を整理整頓しましょう。

VBAではなく、ハイパーリンクではだめなのか?

全然問題ないです。
パイパーリンクでもいいですが、Excelから、ACCESSを起動するということはできないと思います。
私の会社では、Excel、フォルダ、インターネットエクスプローラー、ACCESS等を起動します。
ハイパーリンクでは、少し物足りない感じです。
ここで注意点があります。
調子に乗って、VBAを組み始めると、
この人は、できる人なんだと思われ、いつの間にか、システム担当になっていることがありますので、注意してください。
そうなると、後戻りできない状態になります。

デスクトップ画面を整理整頓 作業手順 その1 Excelファイルを起動するコード

ExcelにPWが設定されていても平気です。

Sub test()

Set openExcelFile = Workbooks.Open("D:\▼▼▼\abc.xlsx"Password:="※※")

End Sub()

書き込みPWが設定されている場合です。

Sub test()

Set openExcelFile = Workbooks.Open("D:\▼▼▼\abc.xls", Password:="※※", WriteResPassword:="※※")

End Sub()

最近は、コンプライアンス上、ファイルにPWを設定しますが、上記のように設定すると、何でもきます。
正直、何で、こんな長いPWを設定するのかと思うようなPWもありますが、セキュリティ上の観点からは、やめたほうがいいです。

デスクトップ画面を整理整頓 作業手順 その2 フォルダを起動するコード

Sub test()

Dim targ As String
targ = "D:\▼▼▼\"
Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus
End Sub()

このコードになります。
フォルダも、同じフォルダを何度も開くときがあり、フォルダが10個以上開いているときがありますね。
IF構文とかで、制御できるでしょうけど、面倒なので、そんなことはしていません。
以前に紹介しました、月ごとにフォルダを作成する場合がありますが、その場合は下記の記事を参照でいください。
月初に、パスを書き換える煩雑な手間がなくなります。

マメ知識

集計ファイルは、クオーター毎、または3か月毎に作成するのがほとんどだと思います。
例えば、今月が、2021年9月ならば、下記のようなファイルを作成してはいけません。

画像1

月初に必ず、パスを変更することになるからです。

画像2

当社は、通常は、3か月単位で集計しますのでこのように、変更してほしいと言いました。
それは、ACCESSのデータ抽出条件に、
当月(月初から今日まで)
先月
先々月
このように記載すれば、月初のパス変更はしなくても大丈夫だからです。この月初のパス変更は、本当に手間です。VBAを担当する人は、絶対に月初の出勤が約束されます。親の死に目にも会えなくなる可能性があります。

VBAのスキルを向上するには、何かに置き換えるというのが、重要です。


A上司「おい、2021年9月の集計表はどうなってる?」
こんな言い方はしません。
A上司「おい、今月の集計表はどうなってる?」
このように言うはずです。
ならば、VBAでも今月を書けるはずです。
この発想が大切です。
シートの一番下は?
シートの一番右端は?
このように置き換えれると、VBAは楽しくなります。

デスクトップを整理整頓 作業手順 その3 インターネットエクスプローラーを起動

Sub test()
With New InternetExplorer
.navigate "https://www.yahoo.co.jp/"
.Visible = True
End With
End Sub()

これは、よく開くWEBサイトように使っています。
社内WEBなども開くことができます。
但し、インターネットエクスプローラーは、12でサポートが終わりますで、他のコードを利用したほうがいいでしょう。

デスクトップを整理整頓 作業手順 その4 ACCESS(他のアプリ)を起動

Sub test()
Shell "msaccess.exe ""D:\▼▼▼\abc.accdb""", vbNormalFocus
End Sub()

このように記載すると、メモ帳が起動します。
何かの際に、メモ帳の起動も記載しておくと便利です。

マメ知識

メモ帳を起動するには、上記のようにも書けます。
1番始めのShell "msaccess.exe "".accdb""", vbNormalFocusと比べるとクォーテーションの数が違います。
なぜか?
パスにスペースがあっても、エラーが発生しません
ここ重要
意図的なのか、稀に、パスにスペースが入っていると、Shell”※※ ※”のような場合はエラーが発生します。
しかし、クォーテーションを増やしておくことでエラーは発生しません。

ここがポイント

今回紹介した、Excelでリンク集を作成しておくと、デスクトップ画面のショートカットは減ります。
断言したいのですが、やっぱり散らかります。
性格の問題なのでしょうね。
私は、ガサツな性格なので、どこまで言っても、ショートカットキーが減ることはないと思います。

まとめ

今回は、少しゆるい感じでやってみました。
ニッチなこともやりますが、カンタンなこともやっていこう思います。
今回も最後まで読んでいただきありがとうございました。
今回のサンプルファイルはありません。


よろしければサポートをお願いします。いただいたお金に関しては、書籍の購入に充て、より良い情報を皆様に提供します。