この期に及んで新カテゴリ追加してみました。
単なる『ガラクタ置き場』です。
ネタが枯渇してきたこともあり、サンプルコードを簡易的にアップしてみようかな、程度の試みです。
基本的に、画像や解説文はありません。..色もありません。
#不親切の度合いがますます...orz
'Excel。パラメータクエリを設定したSampleBookそのものを作成するコード。
Sub try()
Dim ws As Worksheet
Dim fName As String
'カレントフォルダに新規Book作成保存。既存ファイルの上書きに注意。
fName = Application.DefaultFilePath & "\TMP" & Format$(Date, "yyyymmdd")
With Workbooks.Add(xlWBATWorksheet)
With .Sheets(1).Range("A1:C6")
.Rows(1).Value = [{"日付","担当者","訪問先"}]
.Rows(2).Value = [{"4月1日","佐藤","A"}]
.Rows(3).Value = [{"4月2日","鈴木","B"}]
.Rows(4).Value = [{"4月2日","加藤","C"}]
.Rows(5).Value = [{"4月3日","佐藤","D"}]
.Rows(6).Value = [{"4月3日","鈴木","E"}]
End With
.SaveAs fName
'パラメータクエリ例。
'B1セル変更時更新。基本的には手作業で設定できるのでマクロ不要。
Set ws = .Sheets.Add
ws.Name = "QueryTable例"
ws.Range("A1:B1").Value = [{"日付","4月1日"}]
With ws.QueryTables.Add(Connection:="ODBC;DSN=Excel Files;DBQ=" & fName, _
Destination:=ws.Range("A3"))
.CommandText = "SELECT [担当者], [訪問先] FROM [Sheet1$] WHERE ([日付]=?)"
.FieldNames = False
.RefreshStyle = xlOverwriteCells
.AdjustColumnWidth = False
With .Parameters.Add("日付", xlParamTypeDate)
.SetParam xlRange, ws.Range("B1")
.RefreshOnChange = True
End With
.Refresh False
End With
End With
Set ws = Nothing
End Sub
パラメータクエリの設定操作についてはこちらがおすすめ。
『Excel豆知識』
[41-1 外部データの取り込み(パラメータークエリの利用)]
単なる『ガラクタ置き場』です。
ネタが枯渇してきたこともあり、サンプルコードを簡易的にアップしてみようかな、程度の試みです。
基本的に、画像や解説文はありません。..色もありません。
#不親切の度合いがますます...orz
'Excel。パラメータクエリを設定したSampleBookそのものを作成するコード。
Sub try()
Dim ws As Worksheet
Dim fName As String
'カレントフォルダに新規Book作成保存。既存ファイルの上書きに注意。
fName = Application.DefaultFilePath & "\TMP" & Format$(Date, "yyyymmdd")
With Workbooks.Add(xlWBATWorksheet)
With .Sheets(1).Range("A1:C6")
.Rows(1).Value = [{"日付","担当者","訪問先"}]
.Rows(2).Value = [{"4月1日","佐藤","A"}]
.Rows(3).Value = [{"4月2日","鈴木","B"}]
.Rows(4).Value = [{"4月2日","加藤","C"}]
.Rows(5).Value = [{"4月3日","佐藤","D"}]
.Rows(6).Value = [{"4月3日","鈴木","E"}]
End With
.SaveAs fName
'パラメータクエリ例。
'B1セル変更時更新。基本的には手作業で設定できるのでマクロ不要。
Set ws = .Sheets.Add
ws.Name = "QueryTable例"
ws.Range("A1:B1").Value = [{"日付","4月1日"}]
With ws.QueryTables.Add(Connection:="ODBC;DSN=Excel Files;DBQ=" & fName, _
Destination:=ws.Range("A3"))
.CommandText = "SELECT [担当者], [訪問先] FROM [Sheet1$] WHERE ([日付]=?)"
.FieldNames = False
.RefreshStyle = xlOverwriteCells
.AdjustColumnWidth = False
With .Parameters.Add("日付", xlParamTypeDate)
.SetParam xlRange, ws.Range("B1")
.RefreshOnChange = True
End With
.Refresh False
End With
End With
Set ws = Nothing
End Sub
パラメータクエリの設定操作についてはこちらがおすすめ。
『Excel豆知識』
[41-1 外部データの取り込み(パラメータークエリの利用)]