あおいです。
個人的な備忘です。今後使う可能性が増えてくるかも?
個人的にはGoogle スプレッドシートも候補に入れようかなと思いながら。
VBAでPowerQueryのデータソースをいじるプロパティ(対象:Excel 2016~)
1 |
ThisWorkbook.Queries("クエリ名").Formula |
↓編集途中
追記 2019/10/09
簡単にパスが変えられるようにしてみた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Option Explicit Function GetQuery(ByVal QueryName As String) GetQuery = ThisWorkbook.Queries(QueryName).Formula End Function Function GetRecord(ByVal QueryName As String, ByVal Title As String) Dim SQL As String Dim Var As Variant SQL = ThisWorkbook.Queries(QueryName).Formula For Each Var In Split(SQL, vbLf) If InStr(Var, "=") > 0 Then If Left(Replace(Var, " ", ""), Len(Title)) = Title Then GetRecord = Split(Var, "=")(1) End If Next End Function Sub SetQuery(ByVal QueryName As String, ByVal Title As String, ByVal Data As String) Dim SQL As String Dim Var As Variant SQL = ThisWorkbook.Queries(QueryName).Formula For Each Var In Split(SQL, vbLf) If InStr(Var, "=") > 0 Then If Left(Replace(Var, " ", ""), Len(Title)) = Title Then ThisWorkbook.Queries(QueryName).Formula = Replace(SQL, Split(Var, "=")(1), Data) End If Next End Sub |
GetRecordでクエリ名と項目名(一例を下記に記載)を指定して取得。
★イメージ
読込:GetRecord(“クエリ名”,”ソース”)
結果:Excel.Workbook(File.Contents(“C:\Users\UserName\Documents\T_R11_Test.xlsx”), null, true),
以上。
---コメント---