ファイルダイアログについて


VB6初心者  2007-02-21 22:02:14  No: 135397

はじめまして。
初心者なもので「そんなこと」と思われる質問かもしれませんが、
よろしくお願いします。

今回エクセルファイルを参照して、その内容をDBに登録、といったことを
行いたいのですが自身で調べて参考になりそうなものを探したところ
ファイル参照の段階でクラスモジュールなどを使用していて、その中身が
初心者の自分には非常に難しいものでした。

ファイルを参照するにはそういったステップを踏まないとできないのでしょうか?
正直今のところフォームのコードにしか書き込んだことしかないので、
ほかのモジュールなどを使わないで済むのであればどのように
書けばいいのかを教えていただきたいです。

わかりづらい説明ではありますが、どうかよろしくお願いします。


大吉末吉  2007-02-21 23:43:04  No: 135398

> わかりづらい説明ではありますが

えー。申し訳ありませんがよく分かりません。
とりあえず、以下の内容の質問だと思うんですが・・・あってますか?

・VB6でプログラムを作ろうとしている。
・対処とするExcelファイル名は固定の名称。
・ExcelファイルをOpenして、セルの内容を読み込む。
・DB(何のデータベースで、どういう方法で接続しようとしているか不明ですが)に、その内容を登録する。
・質問内容は、「Excelファイルの開き方」。

> ファイル参照の段階でクラスモジュールなどを使用していて
クラスモジュールって・・・別に必要ないのでは?
#単に、そのサンプルが再利用とかを考えてプログラムをクラスにまとめているだけとか・・・

> ファイルを参照するにはそういったステップを踏まないとできないのでしょうか?

そうやっていない、サンプル等は無かったですか?

#クラス化しているほうが珍しいと思いますけど・・・
#VB6のヘルプ(MSDNライブラリ)の「CreateObject 関数」にも
#簡単なサンプル(「Excelファイルを開いて書き込む」という逆用途ですが・・・)が出てますね。


大吉末吉  2007-02-22 00:45:52  No: 135399

あ。
タイトルが「ファイルダイアログについて」
って事は、

・VB6でプログラムを作ろうとしている。
X対処とするExcelファイル名は固定の名称。
=>ダイアログを表示して、ファイルを選択する。
・ExcelファイルをOpenして、セルの内容を読み込む。
・DB(何のデータベースで、どういう方法で接続しようとしているか不明ですが)に、その内容を登録する。
X質問内容は、「Excelファイルの開き方」。
=>質問内容は「ファイルダイアログの表示の仕方」?

なのかな・・・


VB6初心者  2007-02-22 01:10:32  No: 135400

お返事ありがとうございます。

>・VB6でプログラムを作ろうとしている。
>X対処とするExcelファイル名は固定の名称。
>=>ダイアログを表示して、ファイルを選択する。
>・ExcelファイルをOpenして、セルの内容を読み込む。
>・DB(何のデータベースで、どういう方法で接続しようとしているか不明ですが)に、その内容を登録する。
はい。その通りです。

>X質問内容は、「Excelファイルの開き方」。
>=>質問内容は「ファイルダイアログの表示の仕方」?
はい。その通りだったのですが、
>そうやっていない、サンプル等は無かったですか?
のお言葉からもう一度調べなおしたところ、なんとかExcelファイルを開くことはできました。
次はDBへの登録に取り掛かりたいと思いますが、すんなりはいかないであろうと
思いますので、後ほどまた質問させていただきたいと思います。
ちなみに
>何のデータベースで、どういう方法で接続しようとしているか不明ですが
はAccessで
With table
    .col =
    .row =
    .text =
End With
といったやり方で登録しようと考えていました(回答になっていますでしょうか?)。

ではまた後ほどよろしくお願いしますm(_ _)m


VB6初心者  2007-02-22 03:24:30  No: 135401

度々失礼します。
今度はエクセルファイルかどうか判断し、DBに登録しようとしているのですが

If txt.Text = "" Then
    MsgBox "エクセルファイルを選択してください"
ElseIf Right(txt.Text, 4) <> ".xls" Then
    MsgBox "エクセルファイルを選択してください"
ElseIf Right(txt.Text, 4) = ".xls" Then
    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("txt.Text")
Set xlSheet = xlBook.Worksheets(1)

If xlSheet.Cells(1, 1).Value <> "社員コード" Then  
    MsgBox "×"
End If

でちゃんとA1に社員コードと書いてあってもMsgBoxが表示されてしまいます。
これはなぜなのでしょうか?
一応私の仮説としては参照しているtxt.Textが名前だけで、
中身を参照できていないのかな、と考えているのですがいかがでしょうか?
アドバイスをお願いしますm(_ _)m


大吉末吉  2007-02-22 04:11:59  No: 135402

> Set xlBook = xlApp.Workbooks.Open("txt.Text")
コレだと、「txt(テキストボックス?)のTextプロパティで指定されたファイル」じゃ無くて、
「"txt.Text"」というファイルをオープンしようとします。

> Set xlBook = xlApp.Workbooks.Open(txt.Text)
なのでは?


VB6初心者  2007-02-23 02:38:46  No: 135403

あう...失礼しました。
その通りでした。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加