|
▼勉強中 さん:
> 下の記述を改良して,マクロボタンを押すと,入力フォームのようなものが画面上にあらわれて,そこに例えば,「計算書1」や「収益表」と手入力して,OKボタンやENTERを押せば,デスクトップ上の当該名前のCSVファイルのデータを取り込むような記述にする方法を探しています。
>
そのQueryTables のまえに ファイル選択ダイアログを出すようにすれば、
ご希望の動作になるかと思います。
'------------------------------------------------------- 標準モジュール
Option Explicit
Declare Function SetCurrentDirectoryA Lib "kernel32" _
(ByVal lpPathName As String) As Long
Sub データ取込()
Dim deskTop$
Dim csvName
deskTop = CreateObject("WScript.Shell").SpecialFolders("Desktop")
SetCurrentDirectoryA deskTop
csvName = Application.GetOpenFilename("CSV,*.csv")
If VarType(csvName) = vbBoolean Then Exit Sub
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & csvName, Destination:=Range("A1"))
.Name = CreateObject("Scripting.FileSystemObject"). _
GetBaseName(csvName)
(以下、略)
(最後は、以下のようにするといいですよ)
.Refresh BackgroundQuery:=False
.Delete
End With
|
|