【お題】引っかけ問題(締め切り10月27日(日)23時)

VBscriptでエクセルファイルのフルパスを記述したテキストファイルから
読み込んで、そのエクセルファイルにあるシート名をすべて
違うテキストファイルに出力したいのですが、どうすればよいのでしょうか?

A 回答 (4件)

こんにちは。


vbs詳しくないですが、この辺りを参考にすればできるかも

『Visual Basic または VBA から ADO を Excel データで使用する』
http://support.microsoft.com/kb/257819/ja

http://hanatyan.sakura.ne.jp/index.html
『ADOを使ってExcelのシート名を高速に取得する』
http://hanatyan.sakura.ne.jp/dotnet/Excel05.htm


簡単なサンプルとしては下記。
Option Explicit

Const adSchemaTables = 20
Dim adoCn
Dim adoRs
Dim wbName
Dim shName
Dim x()
Dim j
Dim chk

On Error Resume Next
wbName = "c:\work\Book1.xls"
Set adoCn = CreateObject("ADODB.Connection")
adoCn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=" & wbName & ";" & _
      "Extended Properties=Excel 8.0;")
Set adoRs = adoCn.OpenSchema(adSchemaTables)
Do Until adoRs.EOF
  If adoRs Is Nothing Then Exit Do
  shName = adoRs.Fields("TABLE_NAME").Value
  chk = Right(shName, 1)
  If chk Like "$" Or chk Like "'" Then
    ReDim Preserve x(j)
    x(j) = wbName & vbTab & Left(shName, Len(shName) - 1)
    j = j + 1
  End If
  adoRs.MoveNext
Loop
adoRs.Close
Set adoRs = Nothing
adoCn.Close
Set adoCn = Nothing
WScript.echo Join(x, vbCrLf) & vbCrLf

'win2000/ado2.7
    • good
    • 0

こんちには。



その質問では、ちょっと厳しいですね。
できないとは言わないけれども、Excelはあるのですか?
あるなら、VBScript を使う意義がないと思うのです。

>エクセルファイルのフルパスを記述したテキストファイルから読み込んで、

というのは、VBScript では、最初に、Argument を取得するところから入っていかなくてはならないと思います。それで、Text ファイルの拡張子をチェックして……とか。

しょせん、CreateObject で、Excelオートメーションを呼び出すぐらいなら、最初から、Excel VBAを使えばよいのではないでしょうか?それとも、Excelのファイルだけで本体がないので、バイナリ検索でもするというなら、また話は別ですが。(ちなみに、そのスキルは私にはありません)
    • good
    • 0

お望みの回答かどうかはわかりませんが、何らかのヒントになればと思い書き込みました。



シート名の取得は、
シート名 = ActiveWorkbook.ActiveSheet.Name
でできますね。

いまあるブック内の全部のシート名を取得するためにこんな感じでやっていけばなにかいい方法がみつかるのでは?

Dim WSN As String, WSN2 As String   'シート名の変数の定義
Dim i As Integer, j As Integer
i = Worksheets.Count   'シート数をカウント
WSN2 = ActiveWorkbook.ActiveSheet.Name   '最初に表示していたシート名を変数に格納
For j = 1 To i
WSN = Sheets(j).Name   'シート名を格納
Sheets(WSN).Select   'シートを選択(ここで選択したシートになんらかの処理ができますね。また、シートを選択する代わりにテキストファイルに書き込みなどすればよいでしょう)
Next
Sheets(WSN2).Select   '最初に表示していたシートにもどる
    • good
    • 0

サンプルを丸ごと書けということなのか、例えばテキストファイルの読み込み方法が分からないというレベルなのかどの辺なのでしょう。

この回答への補足

テキストファイルから読み込んで、ブック内全てのシート名の取得方法がわかりません。よろしくお願いします。

補足日時:2007/04/15 02:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報