このページの2つのバージョン間の差分を表示します。
|
|
— |
blog:2017:2017-12-21 [2017-12-21 18:55] (現在) Decomo 作成 |
| ====== Excelアドインファイルの自分自身のフルパスを取得する ====== |
| |
| エクセルのVBAプロジェクトで、自身の.xlamファイルのフルパスを取得する方法。まずはコード。 |
| |
| <code vb> |
| ' 自身のファイル名 |
| Const kMyXlamFileName = "MyAddIn.xlam" |
| |
| Private Function GetMyXlamFullPath() |
| Dim proj As Object |
| For Each proj In Application.VBE.VBProjects |
| If InStr(proj.Filename, kMyXlamFileName) <> 0 Then |
| GetMyAddInFullPath = proj.Filename |
| Exit Function |
| End If |
| Next |
| GetMyAddInFullPath = "" |
| End Function |
| </code> |
| |
| ''ThisProject.Filepath''みたいな感じで簡単に取れるかと思いきや、存在するVBProjectを全舐めする方法しか見つからなかった…(´・ω・`)。自身の名前をリテラルでコード内に持ってるのがイケてないが、もしxlamファイル名を変えたらExcelのアドイン設定をし直さなきゃならんので、そう易易と変えることは無いだろうってことで。 |
| |
| 「実行時エラー'1004': プログラミングによるVisual Basicプロジェクトへのアクセスは信頼性に欠けます」エラーが出た場合は、Excelのファイル>オプション>セキュリティセンター>セキュリティセンターの設定から、マクロの設定>VBAプロジェクトオブジェクトモデルへのアクセスを信頼する、にチェックを入れるべし。 |
| |
| {{ :blog:2017:excel_security_center.png?600 |}} |
| |
| ===== 参考サイト ===== |
| |
| * [[http://www.vbaexpress.com/kb/getarticle.php?kb_id=278|VBA Express : Excel - Determine the File Path or GUID to a VBA Reference Library]] |
| * [[https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1212970637|Excel VBA で、自分の関数名を取得したいのですが、良い方法ありますか?例... - Yahoo!知恵袋]] |
| * [[https://support.microsoft.com/ja-jp/help/410621|[XL97] モジュール、プロシージャの情報取得および操作方法]] |
| * [[https://stackoverflow.com/questions/36791473/vba-getting-the-modules-in-workbook|excel vba - VBA - Getting the modules in workbook - Stack Overflow]] |
| * [[http://saku-saku-pc.com/excel/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9/|実行エラー「プログラミングによる Visual Basic プロジェクトへのアクセスは信頼性に欠けます」の対策 | サクサクPC]] |