Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Pro : Access 2016)
拡大鏡と付箋が表示されません。
投稿日時: 20/01/28 14:35:05
投稿者: takatada72

お疲れさまです。
 
検索で色々と探して見ましたが、力不足で見つけることができませんでした。
 
Windows10アプリをACCESSのフォームのボタンをクリックして起動させたい
のですが、下記では起動しませんでした。
何が問題なのかを教えて頂けないでしょうか
 
こちらは、拡大鏡を起動するためのIDです。
{D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27}\magnify.exe
こちらは、付箋を起動するためのIDです。
Microsoft.Windows.StickyNotes
 
電卓こちらは、起動ができました。
Microsoft.WindowsCalculator_8wekyb3d8bbwe!App
 
ネットを検索して見つけたアプリを起動するためのプログラムです。
 Const AppUserModelID As String = "{D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27}\magnify.exe"
  Shell "explorer.exe shell:AppsFolder\" & AppUserModelID
 
宜しくお願い致します。

投稿日時: 20/01/30 08:38:33
投稿者: takatada72

お疲れさまです。
  
みなさんからの投稿がありません。
何か、足りない情報がありましたらご指摘を頂けると幸いです。
  
お手数ですが宜しくお願い致します。

回答
投稿日時: 20/01/30 13:40:46
投稿者: よろずや

Option Compare Database
Option Explicit

Private Sub 拡大鏡_Click()
    AppExecute "拡大鏡"
End Sub

Private Sub 電卓_Click()
    AppExecute "電卓"
End Sub

Private Sub 付箋_Click()
    AppExecute "付箋"
End Sub

Sub AppExecute(ByVal AppName As String)
    Dim itm As Object
    With CreateObject("Shell.Application").Namespace("shell:AppsFolder")
        For Each itm In .Items
            If InStr(itm.Name, AppName) Then
                Shell "explorer.exe shell:AppsFolder\" & itm.Path, vbNormalFocus
                Exit Sub
            End If
        Next
    End With
End Sub

 
ってな感じ。

投稿日時: 20/01/31 14:46:14
投稿者: takatada72

お世話になります、無事に起動できありがとうございました。
下記のプログラムを知るため質問をさせて頂きたいのですが、
●こちらは、Generalに登録をしましたが、何の命令でしょうか
Option Compare Database
Option Explicit
 
●こちらからは、起動したいWindowsアプリの名前を入れれば起動できました。
Private Sub 拡大鏡_Click()
    AppExecute "拡大鏡"
End Sub
 
Private Sub 電卓_Click()
    AppExecute "電卓"
End Sub
 
Private Sub 付箋_Click()
    AppExecute "付箋"
End Sub
 
●こちらは、何をしているのか知りたいのです。
今後、リソースモニター、ニュース、アラーム&クロック、ニュース
などを起動させたいと考えております。下記のサイトに記載している
アプリの名前を全てではありませんが、入れた所起動するものがあり、
ビックリしました。
https://answers.microsoft.com/ja-jp/office/forum/office_2016-customize/access-vba-%E3%81%8B%E3%82%89/026fc54c-5953-4166-9589-9cf4dbe3c533
 
 
Sub AppExecute(ByVal AppName As String)
    Dim itm As Object
    With CreateObject("Shell.Application").Namespace("shell:AppsFolder")
        For Each itm In .Items
            If InStr(itm.Name, AppName) Then
                Shell "explorer.exe shell:AppsFolder\" & itm.Path, vbNormalFocus
                Exit Sub
            End If
        Next
    End With
End Sub
 
もし可能であれば、ご指導頂けないでしょうか

回答
投稿日時: 20/01/31 15:48:03
投稿者: よろずや

Option Compare Database
https://blog.beatdjam.com/entry/2016/10/20/211901
 
Option Explicit
http://officetanaka.net/excel/vba/beginner/11.htm
 
●こちらは、何をしているのか知りたいのです。
さぁ、何を隠そうパクリです。
https://www.ka-net.org/blog/?p=6250

回答
投稿日時: 20/02/01 10:16:56
投稿者: MMYS

少し興味で出たので少々調べてみました。
https://ascii.jp/elem/000/001/832/1832835/
によると起動方法は下記になるようです。
 
1.スタートメニューから起動する方法
2.タスクバーからの起動
3.Microsoftストアアプリからの起動
4.URLを使う方法
5.UWPアプリのショートカットを作る方法
 
また同解説4ページに
https://ascii.jp/elem/000/001/832/1832835/4/
Explorerのパス欄にシェルショートカット「shell:appsfolder」を入れて・・・
と書かれており、ここがヒントになるかと
 
 

takatada72 さんの引用:

●こちらは、何をしているのか知りたいのです。

下記のように修正すればヒントになるかと。
なお、解析しやすくするため、事前バインディングに変更しています。
「Microsoft Shell Controls And Automation」
に参照設定してください。
 
Sub test()
  Dim sh  As Shell32.Shell
  Dim fol As Folder3
  Dim itm As FolderItem

  Set sh = CreateObject("Shell.Application")
  Set fol = sh.Namespace("shell:AppsFolder")
  For Each itm In fol.Items
    Debug.Print itm.Name, itm.Path
  Next
  Set fol = Nothing
  Set sh = Nothing
End Sub

事前バインディングは下記を参照しました。
http://www.thom.jp/vbainfo/refsetting.html
 

投稿日時: 20/02/03 13:08:08
投稿者: takatada72

お疲れさまです。
 
皆様、ご回答をありがとうございます。
 
何を行いたいのかと言うと、業務ACCESSで使っているのですが、今回教えて頂いたアプリを
使って、画像を拡大したり、天気を見たり、ニュースを知ったりと便利なツールを隠しツール
として仕込みいと考えてのことになります。
※今までは、いちいち、アプリを探して起動していたのですが、たびたび起動することに
なるためACCESSに仕込んでおこうと考えました。
 
 
皆様が教えて頂いた内容をこれから学びたいとも思います。
今後の進展がありましたら、お知らせさせて頂きますのでご指導を宜しくお願い致します。
 
ありがとうございました。

トピックに返信