ここから本文です

Access 2010 VBA エクセルインポート時のシート名指定について エクセルからAcces...

アバター

ID非公開さん

2019/9/1715:30:57

Access 2010 VBA エクセルインポート時のシート名指定について
エクセルからAccess2010のテーブルにインポートを試みています。

テーブル名「科名」
エクセルのシート名 科名(9月)
といった感じですが、このシート名が翌月には科名(10月)と可変します。
シート名が「科名」と固定の場合は下記ソースで実現できています。
「科名」の後ろが可変の場合でもインポートできるようにする方策をご教示ください。

DoCmd.TransferSpreadsheet acImportDelim, , "科別", msg, True, "科別!"

補足先の質問の文中の「科名」は「科別」の誤りでした。読み替えてください。

閲覧数:
21
回答数:
2
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

ony********さん

2019/9/1809:48:07

1つのEXCELファイルに1つのシートということですか?
それとも複数のシートに埋もれて「科別(xx月)」があるということですか?

シート名の一覧をデバッグウィンドウに表示するサンプルです。

このForループの中で左3文字が「科別(」のシート名を
別に用意した変数に記録しておけば、

Forループ脱出後にその変数をシート名として使えます。


Public Function Sheet_Name_List()

Dim exApp As Object
Dim exBook As Object
Dim exSheet As Object

Set exApp = CreateObject("Excel.Application")
Set exBook = exApp.Workbooks.Open("D:\Test.xlsx", , False)

For Each exSheet In exBook.WorkSheets
Debug.Print exSheet.NAME
Next

exBook.Close
exApp.Quit

End Function

  • アバター

    質問者

    ID非公開さん

    2019/9/1810:14:43

    ご教示ありがとうございます。
    一つのBookの中に科別(??)と項目別(??)というシートが1シートづつ存在します。
    このシート名を読み取り、「科別」「項目別」というテーブルに取り込もうとしています。
    シート名を読み取るところまでは、できているのですが
    DoCmd.TransferSpreadsheet acImportDelimの段階で、シート名をセットする部分でつまずいています。

    strNames1およびstrNames2でシート名はとれているのは確認できています。

    DoCmd.TransferSpreadsheet acImportDelim, , "項目", msg, True, strNames1
    DoCmd.TransferSpreadsheet acImportDelim, , "科別", msg, True, "'" & strNames2 & "!'"  この部分でつまずいています。

  • その他の返信(2件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

アバター

質問した人からのコメント

2019/9/18 12:50:30

お二方、ありがとうございました。
一部、当方の勘違いがあったようです。
無事、解決しました。

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

tac********さん

2019/9/1719:57:46

>このシート名が翌月には科名(10月)と可変します。

アクセスで処理する月とエクセルの月との関係は決まっているのですか?

もし同じ月なら

DoCmd.TransferSpreadsheet acImportDelim, , "科別(" & Month(Date) & "月)", msg, True, "科別(" & Month(Date) & "月)!"

で出来るはずです。

もしアクセスで処理する月の翌月のエクセルの月を処理するのならもう一手間必要です。


VBA 現在の日付を取得するDate関数 Year関数 Month関数 Day関数
https://kosapi.com/post-2341/

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる