余りにも初歩的な質問で申し訳ございません。
VB6で例えばC:\temp\a.xlsファイルを開きたいのですが、
どのようにコーディングすればよろしいのでしょうか?
もし、CreateObject関数やGetObject関数を使用するのであれば、
使い方が分かりませんので、そのあたりもご教授ください。
>もし、CreateObject関数やGetObject関数を使用するのであれば、
そこまでわかってて、自分でヘルプ見ようとは思わないわけ?
ヘルプ等で調べて、
Dim objFile As Object
objFile = GetObject("c:\temp\a.xls")
と入力し、処理を実行してみたのですが、
「実行時エラー'91' オブジェクト変数またはWithブロック変数が設定されていません。」
というエラーが発生致しました。
どういう意味なのでしょうか?
ちなみに、対象とするxlsファイルは、マクロ付のエクセルファイルですが、マクロ付だと何か制限が発生するのでしょうか?
>ヘルプ等で調べて、
>Dim objFile As Object
>objFile = GetObject("c:\temp\a.xls")
ヘルプの解説にも使用例にも
そういうコードは記載されてなかったと思いますが?
また、GetObjectとCreateObjectの違いもヘルプに記載されています。
ヘルプの内容に不明点があるなら、ヘルプに即して質問してください。
ヘルプ(GetObject 関数)より抜粋
> GetObject 関数で取得したオブジェクトをオブジェクト変数に代入するには、
> Set ステートメントを使います。次に例を示します。
> Dim CADObject As Object
> Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")
使用例の方もSetが使われていますよ。
ヘルプはきちんと読みましょう!!
ここにいってExcel & Word関係のところのサンプルを参考にすれば、
分かりやすいんじゃないかな...
http://www.bcap.co.jp/hanafusa/
Excelファイルを開くだけでいいなら、
Shell関数やShellExecuteAPIを使うって手もあるけど...
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ファイルをただ開くだけで結構なのですが・・・。
サンプルでは
'この状態で起動した場合マクロの警告は表示されません。
'以下の2行が(その1)との相違部分です
Set xlBook = xlApp.Workbooks.Open("C:\Temp.xls") 'オープンするファイル名
Set xlSheet = xlBook.Worksheets(1) '最初のシートに書き込み
' Worksheets(Sheet1等のシート名でも可)
> xlApp.Visible = True 'Excelを表示
Excelを表示の部分を削除すれば、見えない(表示されない)のは当然なのでは?
うっかり見落としていました。
確かに表示部分を削除すれば、見えないのは当然ですよね。。。
どうもありがとうございました。
ツイート | ![]() |