VB6でエクセルファイルを起動するには?

解決


VB初心者  2005-03-07 21:27:20  No: 88705  IP: [192.*.*.*]

余りにも初歩的な質問で申し訳ございません。

VB6で例えばC:\temp\a.xlsファイルを開きたいのですが、
どのようにコーディングすればよろしいのでしょうか?

もし、CreateObject関数やGetObject関数を使用するのであれば、
使い方が分かりませんので、そのあたりもご教授ください。

編集 削除
Say  2005-03-07 22:11:28  No: 88706  IP: [192.*.*.*]

>もし、CreateObject関数やGetObject関数を使用するのであれば、
そこまでわかってて、自分でヘルプ見ようとは思わないわけ?

編集 削除
VB初心者  2005-03-07 23:13:02  No: 88707  IP: [192.*.*.*]

ヘルプ等で調べて、
Dim objFile As Object
objFile = GetObject("c:\temp\a.xls")
と入力し、処理を実行してみたのですが、
「実行時エラー'91' オブジェクト変数またはWithブロック変数が設定されていません。」
というエラーが発生致しました。

どういう意味なのでしょうか?
ちなみに、対象とするxlsファイルは、マクロ付のエクセルファイルですが、マクロ付だと何か制限が発生するのでしょうか?

編集 削除
Say  2005-03-08 04:04:02  No: 88708  IP: [192.*.*.*]

>ヘルプ等で調べて、
>Dim objFile As Object
>objFile = GetObject("c:\temp\a.xls")
ヘルプの解説にも使用例にも
そういうコードは記載されてなかったと思いますが?

また、GetObjectとCreateObjectの違いもヘルプに記載されています。
ヘルプの内容に不明点があるなら、ヘルプに即して質問してください。

編集 削除
みい  2005-03-08 09:57:35  No: 88709  IP: [192.*.*.*]

ヘルプ(GetObject 関数)より抜粋
> GetObject 関数で取得したオブジェクトをオブジェクト変数に代入するには、
> Set ステートメントを使います。次に例を示します。
> Dim CADObject As Object
> Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")
使用例の方もSetが使われていますよ。
ヘルプはきちんと読みましょう!!

編集 削除
batchman  2005-03-08 10:07:47  No: 88710  IP: [192.*.*.*]

ここにいってExcel & Word関係のところのサンプルを参考にすれば、
分かりやすいんじゃないかな...
http://www.bcap.co.jp/hanafusa/

Excelファイルを開くだけでいいなら、
Shell関数やShellExecuteAPIを使うって手もあるけど...

編集 削除
VB初心者  2005-03-08 12:16:10  No: 88711  IP: [192.*.*.*]

batchmanさんが紹介してくれたサイトでの
「既存のエクセルファイルを開く」を参考に、コーディングしてみました。

On Error Resume Next
Dim xlApp    As Excel.Application
Dim xlBook   As Excel.Workbook
Dim xlSheet  As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application")

Set xlBook = xlApp.Workbooks.Open("C:\temp\a.xls")
Set xlSheet = xlBook.Worksheets(1)

Set xlSheet = Nothing
Set xlBook  = Nothing
Set xlApp   = Nothing

しかし、何も返答がありませんでした。
ちなみにa.xlsファイルのセル等には編集はしないため、途中を省きました。
a.xlsファイルをただ開くだけで結構なのですが・・・。

編集 削除
まじめに考えてね  2005-03-08 12:34:05  No: 88712  IP: [192.*.*.*]

サンプルでは
    'この状態で起動した場合マクロの警告は表示されません。
    '以下の2行が(その1)との相違部分です
    Set xlBook = xlApp.Workbooks.Open("C:\Temp.xls")  'オープンするファイル名
    Set xlSheet = xlBook.Worksheets(1)     '最初のシートに書き込み
    '                    Worksheets(Sheet1等のシート名でも可)

>    xlApp.Visible = True    'Excelを表示

Excelを表示の部分を削除すれば、見えない(表示されない)のは当然なのでは?

編集 削除
VB初心者  2005-03-08 13:15:05  No: 88713  IP: [192.*.*.*]

うっかり見落としていました。
確かに表示部分を削除すれば、見えないのは当然ですよね。。。
どうもありがとうございました。

編集 削除