[リストへもどる]
一括表示

投稿時間:2003/01/21(Tue) 11:28
投稿者名:m.turn
Eメール:
URL :
タイトル:
VBからExcelを操作
はじめて投稿させて頂きます。

VBからExcelを開き、スペース区切りのtxtファイルを開こうとしているのですが、エラーが出て実行できません。
VB.NET・Excel2000を使用しております。
Excelでマクロを取ってコピーしていじった結果、現在下記のようなコードになっています。

xlBook = xlApp.Workbooks.OpenText(Filename:=TextFile.Text, _
StartRow:=1, _
DataType:=xlDelimited, _
TextQualifier:=Excel.XlTextQualifier.xlTextQualifierDoubleQuote, _
ConsecutiveDelimiter:=True, TAB:=False, Semicolon:=False, Comma:=False, Space:=True,Other:=False)

ここで、DataTypeの「xlDelimited」ところに波線が表示され、"名前が宣言されていません"とエラーが出ています。
ご教授お願いします。m(__)m

投稿時間:2003/01/21(Tue) 14:06
投稿者名:A221
Eメール:
URL :
タイトル:
Re: VBからExcelを操作
> xlBook = xlApp.Workbooks.OpenText(Filename:=TextFile.Text, _
> StartRow:=1, _
> DataType:=xlDelimited, _
> TextQualifier:=Excel.XlTextQualifier.xlTextQualifierDoubleQuote, _
> ConsecutiveDelimiter:=True, TAB:=False, Semicolon:=False, Comma:=False, Space:=True,Other:=False)
> ここで、DataTypeの「xlDelimited」ところに波線が表示され、"名前が宣言されていません"とエラーが出ています。

VB6.0なら、参照設定してCreateObjectならば出ませんが、
GetObjectで拾うとこのようなことがおきました。

xlDelimitedは、EXCELの定数です。差し支えなければ1を代入で解決できます。

マクロから拾うとよくこのようにEXCEL定数でかかれる部分がありますが、
EXCELマクロのイミディエイトで? xlDelimited とすると値を見ることができます。

#直接.NETを使ったことがないので、もし違うならごめんなさい。

投稿時間:2003/01/21(Tue) 17:18
投稿者名:m.turn
Eメール:
URL :
タイトル:
Re^2: VBからExcelを操作
> xlDelimitedは、EXCELの定数です。差し支えなければ1を代入で解決できます。

A221殿、ありがとうございます。

1を代入してみましたところ、今度は式全体、
『xlApp.Workbooks.OpenText(Filename:=TextFile.Text, _
StartRow:=1, _
DataType:=xlDelimited, _
TextQualifier:=Excel.XlTextQualifier.xlTextQualifierDoubleQuote, _
ConsecutiveDelimiter:=True, TAB:=False, Semicolon:=False, Comma:=False, Space:=True,Other:=False)』
が波線になってしまい、"式は値を生成しません"になってしまいました。(T-T)
そもそも、使い方が間違っているのでしょうか??

投稿時間:2003/01/21(Tue) 20:06
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: VBからExcelを操作
> VBからExcelを開き、スペース区切りのtxtファイルを開こうとしているのですが、
> Excelでマクロを取ってコピーしていじった結果、現在下記のようなコードになっています。

多分出来ないのではないでしょうか?、区切り位置の設定等がうまく出来ないのでは
Wordの差込印刷同様Excelの内部のマクロで処理されているかと思います。(定かではない)

Excelのシートにそのマクロを記録しておきそのマクロをVBから起動すれば、ひょっとして可能
かも知れません(未確認)
それで出来なければ、VBのランダムファイルで読込Excelに表示するとか
 

投稿時間:2003/01/21(Tue) 21:00
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: VBからExcelを操作
今、確認すべくマクロを取ってそのマクロをVBから起動したらできたので調べていたら
貴方のマクロでは区切り位置が見当らなかったので出来ないものと思っていたのですが
私が記録したマクロでは1箇所変更するだけで実行できました。
区切り位置は実際のファイルに合わせて下さい。
但し、VB6.0 Excel2000 での確認です。

Private Sub Command1_Click()
    Dim xlApp    As Excel.Application
    Dim xlBook   As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Worksheets(1)
    
    xlApp.Workbooks.OpenText FileName:="C:\test.prn", StartRow:=1, _
        DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(12, 1), _
        Array(28, 1), Array(44, 1), Array(60, 1), Array(76, 1), Array(92, 1))
    
    xlApp.Visible = True
    
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
End Sub

投稿時間:2003/01/23(Thu) 13:18
投稿者名:m.turn
Eメール:
URL :
タイトル:
Re^2: VBからExcelを操作
ありがとうございます。

Excelマクロからtxtファイルを開くことができるようになりました。
「VBからExcelマクロ」の部分はHPの説明を見ながらやってみます。

また、宜しくお願いします。