【ExcelVBA】ブックを開かないでワークシート名を抽出
ただし、ワークシート名に記号('!$)等が使われている場合は、そのワークシート名に関しては正しく取得できません。
これらの記号が使われることはあまりないと思うのですが、ご注意ください。
ADOX 関連ライブラリーの有効化
必要になるADOX関連のライブラリーになります。
Microsoft ActiveX Data Objects x.x Library
- マクロの編集画面(Microsft Visual Basic for Applications)を開く。
- 画面上部の「ツール」→「参照設定」
- 「Microsoft ActiveX Data Objects x.x Library」有効化する。
ワークシート名の全部をイミディエイト画面に表示
イミディエイト画面に、全てのワークシート名を表示する。Sub Sample() Dim objCN As New ADODB.Connection Dim objRS As ADODB.Recordset Dim sFile As String Dim sSheet As String sFile = "E:\SAMPLE\TEST.xlsx" With objCN .Provider = "Microsoft.ACE.OLEDB.12.0" .Properties("Extended Properties") = "Excel 12.0" .Open sFile End With Set objRS = objCN.OpenSchema(ADODB.adSchemaTables) Do Until objRS.EOF sSheet = objRS.Fields("TABLE_NAME").Value If Right(sSheet, 1) = "$" Or Right(sSheet, 2) = "$'" Then sSheet = Replace(sSheet, "$", "") sSheet = Replace(sSheet, "'", "") Debug.Print sSheet End If objRS.MoveNext Loop objRS.Close objCN.Close Set objRS = Nothing Set objCN = Nothing End Sub
ブックを開かないでセルのデータを抽出
ExecuteExcel4Macro メソッドを使用して、ブックを開くことなく、セルのデータを読み込む方法です。詳しくは記事:【ExcelVBA】ブックを開かないでセルのデータを抽出
ディスカッション
コメント一覧
まだ、コメントがありません