Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Access 2016)
取り込むEXCELをダイアログで指定したい。
投稿日時: 21/02/08 13:44:10
投稿者: やっほー

取り込むEXCELをダイアログで指定したい 投稿者: silk123さんについて
ありがたく投稿をAccessで活用させて頂いております。
  
そのなかでExcelのシートを選択し、テーブルへ保存できるように出来ますでしょうか?
もしくは、指定したシート名(sheet2)をテーブルへ保存できるように出来ますでしょうか。
お手数ですが、宜しくお願い致します。
  
Dim FileName As String
   
With Application.FileDialog(1) 'msoFileDialogOpen
    .Title = "ブックの選択"
    .Filters.Clear
    .Filters.Add "Excel ブック", "*.xlsx; *.xlsm; *.xls"
    If .Show = 0 Then
        Exit Sub
    End If
    FileName = .SelectedItems(1)
End With
   
DoCmd.TransferSpreadsheet acImport, , "T_データ", FileName, True, "sheet2!"
 
で解決をしましたが、
DoCmd.TransferSpreadsheet acImport, , "T_データ", FileName, True, "sheet2!"で
"sheet2!"の部分を変更して、ワイルドカード的なことは出来ないでしょうか?
シートを指定しないでインポートをしたいです。
スイマセンが、よろしくお願いします。

回答
投稿日時: 21/02/08 16:43:40
投稿者: sk

引用:
Excelのシートを選択し、テーブルへ保存できるように出来ますでしょうか?

ワークシートや名前付きセル範囲の一覧を表示して
任意のシート/定義された名前を選択するためのコントロール
(リストボックスやコンボボックスなど)があれば。
 
引用:
もしくは、指定したシート名(sheet2)をテーブルへ保存できるように出来ますでしょうか。

既に回答済みです。
 
https://www.moug.net/faq/viewtopic.php?t=79910
 
引用:
DoCmd.TransferSpreadsheet acImport, , "T_データ", FileName, True, "sheet2!"で
"sheet2!"の部分を変更して、ワイルドカード的なことは出来ないでしょうか?

インポート元のブックに存在しないワークシートや名前付きセル範囲の名前を
引数 Range に指定することは出来ません。
 
例えば「インポート対象として指定されたブックにおいて、
ある一定の文字列パターンに該当する名前がつけられたワークシートが
1 つ以上存在していた場合、それらのワークシートを 1 つずつ
同じテーブルにインポートする処理を繰り返したい」といったように、
そうしたい理由や目的を明記されることをお奨めします。
 
引用:
シートを指定しないでインポートをしたいです。

引数 Range の指定を省略した場合、そのブックの 1 番目のワークシートが
インポート対象となります。

投稿日時: 21/02/12 16:26:08
投稿者: やっほー

>引数 Range の指定を省略した場合、そのブックの 1 番目のワークシートが
>インポート対象となります。
 
ご対応、ありがとうございます。
初心者の為、ご指導ください。
「引数 Range の指定を省略した場合」とはどの様な意味になりますか?
よろしくお願いします。

回答
投稿日時: 21/02/15 13:58:39
投稿者: sk

引用:
「引数 Range の指定を省略した場合」とはどの様な意味になりますか?

引用:
DoCmd.TransferSpreadsheet acImport, , "T_データ", FileName, True, "sheet2!"

DoCmd.TransferSpreadsheet acImport, , "T_データ", FileName, True

投稿日時: 21/06/02 12:58:13
投稿者: やっほー

解決しました。
ありがとうございました。