Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1252 / 2272 ツリー ←次へ | 前へ→

【8005】小僧さん。よろしくお願いします。 ユミちゃん 06/6/17(土) 17:34 質問[未読]
【8007】Re:小僧さんじゃありませんが。 Gin_II 06/6/17(土) 20:57 回答[未読]
【8009】Re:小僧さんじゃありませんが。 ユミちゃん 06/6/17(土) 23:19 質問[未読]
【8010】Re:Range 引数 Gin_II 06/6/17(土) 23:52 回答[未読]
【8011】Re:Range 引数 ユミちゃん 06/6/18(日) 1:06 お礼[未読]

【8005】小僧さん。よろしくお願いします。
質問  ユミちゃん  - 06/6/17(土) 17:34 -

引用なし
パスワード
   小僧さん。
いつもお世話になります。
ACCESSからダイアログを表示してEXCELをインポートしたいのですが
過去ログで下記の内容を参考にさせていただきました。
'こちらでTransferSpreadsheetメソッドを発行のところで
DoCmd.TransferSpreadsheet acinport, acSpreadsheetTypeExcel9, "集計表", "c:\ライン集計表.xls", True, "集計"
としてしまうとダイアログで選択した意味がなくなってしまいます。
"c:\ライン集計表.xls" をダイアログで選択した値を反映させる方法が
どうしても判りません。
よろしくお願いします。

Sub ダイアログを呼び出す()
'要参照設定 Micosoft Office x.x Object Library 10.0以降
Dim FName As Variant

  Const IFName = "C:\"  'デフォルトのパスを設定

  With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = True
    .Title = "インポートするファイルを選択(複数選択可)"
    .Filters.Add "Excel ファイル", "*.xls"
    .InitialFileName = IFName
    
    If .Show = -1 Then
      For Each FName In .SelectedItems
        Call インポート(FName)
      Next
    End If
  End With
End Sub

Function インポート(xName As Variant)
'こちらでTransferSpreadsheetメソッドを発行
  MsgBox xName

End Function

【8007】Re:小僧さんじゃありませんが。
回答  Gin_II  - 06/6/17(土) 20:57 -

引用なし
パスワード
   > DoCmd.TransferSpreadsheet acinport, acSpreadsheetTypeExcel9, "集計表", "c:\ライン集計表.xls", True, "集計"

DoCmd.TransferSpreadsheet acinport, acSpreadsheetTypeExcel9, "集計表", xName, True, "集計"


> Call インポート(FName)

別モジュールにする理由がよくわかりませんけど。

【8009】Re:小僧さんじゃありませんが。
質問  ユミちゃん  - 06/6/17(土) 23:19 -

引用なし
パスワード
   ▼Gin_II さん:
ありがとうございました。
早速教えていただいたとおり修正して実行しましたが、
オブジェクト "集計"が見つかりませんでした。オブジェクトが存在すること
名前やパス名が正しいことを確認してください。
というメセージが出ました。下記の "集計" は sheet名の指定と解釈して
いました。"集計"を削除して実行しますとsheet1がインストールされます。
sheet5の集計をインストールしたいのですがsheetの選択はできないのでしょうか。何度も申し訳ございませんがよろしくお願いいたします。

DoCmd.TransferSpreadsheet acinport, acSpreadsheetTypeExcel9, "集計表", xName, True, "集計"
Call インポート(FName)

【8010】Re:Range 引数
回答  Gin_II  - 06/6/17(土) 23:52 -

引用なし
パスワード
   >下記の "集計" は sheet名の指定と解釈していました。

Range 引数は、シート名や、範囲名なんかを指定することができます。
が、シート名の場合には、
"シート名!"
のように記述する必要があります。


>sheet1がインストールされます。

ちなみに、インポートですね。
なるべく用語はきちんと使いましょう。その方が混乱が少ないので ^^;

【8011】Re:Range 引数
お礼  ユミちゃん  - 06/6/18(日) 1:06 -

引用なし
パスワード
   ▼Gin_II さん:
できました。本当にありがとうございました。
何かHAPPYな気持ちです。今夜はゆっくりと眠れます。

1252 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078228
(SS)C-BOARD v3.8 is Free