Excelブック内のシート名を取得する(DAO)
 インポートや、リンクの操作を自動化するプログラムを作成するような時に、
Excelブック内に含まれる全てのシートあるいは特定のシート名の取得をする
必要があります。

 そのようなときには、OpenDatabaseメソッドを使って、特定のExcelブックの
Databaseオブジェクトを参照してシート名を取得します。

 サンプルマクロでは、「C:\TEST.xls」のシート名を取得して、イミディエイト
ウィンドウに出力しています。「TEST.xls」には、「Sheet1」「Sheet2」「Sheet3」
の3シートがあります。

● サンプル ●

Sub Sample()

    Dim db            As Database
    Dim tbl           As TableDefs
    Dim intnumrecords As Integer
    Dim I, sheet_NM
    
    Set db = OpenDatabase("C:\TEST.xls", False, False, _
                          "excel 5.0;hdr=no;")
    
    For I = 0 To db.TableDefs.Count - 1
        sheet_NM = db.TableDefs(I).Name
        
        Debug.Print "$マーク削除前:" & sheet_NM
        
        '取得したシート名に付加された $ マークを取り除きます。
        sheet_NM = Mid(sheet_NM, 1, InStr(1, sheet_NM, "$", 1) - 1)
    
        Debug.Print "$マーク削除後:" & sheet_NM
    
    Next I
    
    db.Close
    
End Sub

 イミディエイトウィンドウには、次のように出力されます。

$マーク削除前:Sheet1$
$マーク削除後:Sheet1
$マーク削除前:Sheet2$
$マーク削除後:Sheet2
$マーク削除前:Sheet3$
$マーク削除後:Sheet3

● 詳細 ●

 OpenDatabaseメソッドは、Workspaceオブジェクトで指定したデータベースを開き、
そのデータベースを表すDatabaseオブジェクトへの参照を返します。
 構文は、次のとおりです。

<構文>
Set database = workspace.OpenDatabase (dbname, options, read-only, connect)

指定項目     説明 
database     開くDatabaseオブジェクトを表すオブジェクト変数を
         指定します。
         
workspace     (省略可能)データベースを含める既存のWorkspaceオブジェクト
         を表すオブジェクト変数を指定します。引数workspaceが値を
          持たない場合、OpenDatabaseメソッドは既定のワークスペースを
         使用します。 
         
dbname      既存のJetデータベースのファイル名、またはODBCデータソースの
         データソース名(DSN)を表す文字列型(String)を指定します。
         
options      (省略可能)データベースにさまざまな引数を設定するバリアント型
         (Variant)を指定します。
         Jetワークスペースでは、引数optionsに使用できる値は
         次のとおりです。
         設定値   説明
         True    排他モードでデータベースを開きます。
         False    (既定値)共有モードでデータベースを開きます。
         
read-only     (省略可能)サブタイプがブール型(Boolean)であるバリアント型
         (Variant)を指定します。データベースを読み取り専用権限で開く
         場合は、Trueが設定され、読み取り/書き込み権限で開く場合は、
         Falseが設定されます。
         
connect      (省略可能)パスワードを含むさまざまな接続情報を示すサブタイプ
         が文字列型(String)であるバリアント型(Variant)を指定します。 

 引数connectは、データベースの種類と、セミコロンに続く任意指定の引数との 2 つ
の部分で表現されています。まず最初に"ODBC;"または" Excel 5.0;"などのデータベース
の種類を提示し、続けて任意指定の引数を指定します。任意指定の引数には特定の順序は
なく、それぞれセミコロンで区切られます。パラメータにパスワードが含まれること
もあります。その場合には、たとえば次のようになります。

" Excel 5.0; pwd=mypassword"

 データベースを閉じ、DatabasesコレクションからDatabaseオブジェクトを削除するには、
そのオブジェクトに対してCloseメソッドを使用します。

Access97/2000



戻る


Excel Word Access VBA! モーグ