次の方法で共有

Access VBAにてExcelファイルのシート名を取得したい

Anonymous
2014-10-01T06:39:56+00:00

お世話になります。

Access2010

Excel2010

Windows7 Pro

シートの取得名につきましては以下で取得することができました。

※あるWebページに記載があったものをコピペしました。なので、以下のVBAの内容は

 理解できておりません。

Dim Db As DAO.Database

Dim Tbl As DAO.TableDef

Dim xlsFile As String

xlsFile = "ファイルパス"

Set Db = OpenDatabase(xlsFile, True, True, "Excel 12.0;") (注)

For Each Tbl In Db.TableDefs

    If Right$(Tbl.Name, 1) = "$" Or _

        Right$(Tbl.Name, 2) = "$'" Then

        'シート名の最後は必ず$が付きます

Debug.Print Tbl.Name

    End If

Next Tbl

Db.Close

Set Db = Nothing

<質問1>

 (注)の箇所のExcelバージョンについてですが、ここに指定するバージョンは

 インストールされているExcelのバージョン(Excel2010=14?)ではなく、

 ファイルパスで指定されているExcelファイルのバージョン・・・という認識で

 よろしいでしょうか。

<質問2>

 上記がExcelファイルのバージョンの場合、どうやってそのファイルのバージョンを

 確認することができるのでしょうか。

 Excelのヘルプには、Excel自体のバージョン(14)が表示されます。

 またファイルのプロパティ「詳細」のバージョン番号の箇所は空白になってます。

<質問3>

 当該AccessはユーザーにてRuntime環境で利用する予定です。

 よって、ユーザーによって(PCによって)Excelのバージョンはまちまちです。

 基本的に2007より以前のバージョンを使うことはないと思うのですが、

 このような場合、一般的にバージョンの指定はどのようにするものなのでしょうか。

 ※2007以降のバージョン(.xlsx)であれば、とりあえず12を指定していれば間違いないとか?

<質問4>

 勉強不足で大変申し訳ございませんが、上記VBAのそれぞれの行で

 何をやっているのか噛み砕いてご教授頂けると幸いです。

以上、宜しくお願い致します。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

2 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-10-01T12:09:30+00:00

    MukkuMukuです。

    <質問1>

    ACE (Access Connectivity Engine) で定義されている ISAM Format のひとつが、Excel 12.0

    Excel 関連では他に、Excel 12.0 Macro / Excel 12.0 Xml / Excel 5.0 / Excel 8.0 がある。

    <質問2>

    Excel ファイルフォーマットを調べるには、Excel で Workbook.FileFormat を調べる感じでしょう

    <質問3>

    まずは試すことをお奨めしますが、あまり厳密にしなくてもシートの列挙はできると思います。

    <質問4>

    なにもわからないのですべて教えてほしい、というのはユーザ互助の場であっては適切な問いかけとは思えません。

    Excel ファイルを ACEの機能で データベースとして開いて、データベースの重要な要素であるテーブルを DAO.Tabledefs コレクション で参照しています。この時、Workbook上のシートはテーブルとして読み替えられているという感じ。

    この回答は役に立ちましたか?

    100+ 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2014-10-21T04:04:27+00:00

    MukkuMuku様

    返信が遅くなり大変申し訳ございません。

    今まで色々ご質問させて頂いておりましたが、CSVファイルのインポートに

    ついて仕様を再検討しておりました。

    >なにもわからないのですべて教えてほしい、というのはユーザ互助の場であっては適切な問いかけとは思えません。

    申し訳ございません。ちょっと甘えすぎました。

    この回答は役に立ちましたか?

    4 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません