エクセルファイルの取り込み

解決


初心者  2009-03-12 10:42:44  No: 141669  IP: 192.*.*.*

早速ですが質問させていただきたいと思います。

エクセルに「取込」ボタンがあり、それを押してダイアログからエクセルファイルを選択、選択したファイルを取り込んで表示、項目チェック、といったことを行いたいです。
ですが、エクセルファイルを取り込む、というところで詰まってしまっています。
色々調べた結果、テキストやcsvファイルの取り込み方法は見つけられたのですが、エクセルの取り込み方法は見つけることが出来ませんでした。

どなたか、エクセルファイルの取込方法についてアドバイス、もしくは参考になるサイト等教えていただければ幸いです。
宜しくお願いします。

編集 削除
3月  2009-03-12 11:43:08  No: 141670  IP: 192.*.*.*

まずは環境を書いて下さい。  VB6なのか、VB_NETなのか?
VB6なら下記の花ちゃんさんのページの
「カテゴリ別一覧」「Excel・Word関係」

ただし
かならず下記を読んでからにして下さい。
「VBからExcel及びWordを操作する時の注意事項(最初に必ずお読み下さい)」

http://hanatyan.sakura.ne.jp/

編集 削除
どうもと  2009-03-12 12:06:09  No: 141671  IP: 192.*.*.*

Visual Basic .NET で Excel を自動化し、
配列による範囲内へのデータ入力
および範囲内からのデータ取得を行う方法

http://support.microsoft.com/kb/302094/ja

ただ「エクセルファイルの取り込み」という概念はないと思ったほうがいいと思います。

エクセルファイル=エクセルブック=複数シートの集合です。

編集 削除
初心者  2009-03-12 16:26:12  No: 141672  IP: 192.*.*.*

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

申し訳ありません。取り込むファイルはエクセルファイルでなく、tsvファイルでしたm(__)m

その上で、各種サイトを参考にファイルを読み込むことは成功しました。
ただ、ボタンを押したシートの判別方法が分からず困っています。

おおまかな処理の流れは下記の通りです。
1.ダイアログを開いてtsvファイルを選択
2.選択したファイルをエクセル上に表示
3.表示した項目のチェックを行う
4.エラーの項目はセルの背景色を変える

上記、2までは成功し、3のところで詰まっています。
例)tsvの中身が氏名、年齢とした時、シート1では氏名のチェック(全角○字以下)、シート2では年齢のチェック(数字か)を行う。

とした時にボタンを押したシートのシート名で分岐を行いたいのですが、それは可能でしょうか?
自分で調べた限りシート名の取得は出来ても、ボタンを押した(アクティブな)シートの名前を取得する方法を見つけることが出来ませんでした。

調べ方が悪いと言われたらそれまでですが、何卒アドバイスを宜しくお願い致します。
なお、使用しているのはVB6です。

編集 削除
 2009-03-12 17:00:01  No: 141673  IP: 192.*.*.*

「ボタンを押したシート」って何?
VB6からExcelをどう操作してるの?

#実はVBAだったりしない?

編集 削除
たぬ  2009-03-12 22:41:02  No: 141674  IP: 192.*.*.*

こんなのを作ります。
Sub Macro1()
    Select Case ActiveSheet.Name
    Case "Sheet1"
        MsgBox "Selet Sheet1"
    Case "Sheet2"
        MsgBox "Selet Sheet2"
    Case "Sheet3"
        MsgBox "Selet Sheet3"
    End Select
End Sub

でシート毎もしくはツールバーとかに貼り付けた
ボタンにこれを割り当ててみてはどうでしょう。
MsgBoxの代わりに好きな処理を書けば実現出来ると思います。
現在選択されているシートは
ActiveSheet.ほにゃらら
で操作出来るはずです。

#多分私より詳しいと思いますので
#ボタンとマクロのひも付けについては詳しくは書き(け)ません。

編集 削除
たぬ  2009-03-12 22:50:04  No: 141675  IP: 192.*.*.*

あ、VBAの場合の話です。

#ここはVB全般に回答がつきますので
#環境は書いた方が吉です。

編集 削除
初心者  2009-03-13 11:22:06  No: 141676  IP: 192.*.*.*

ありがとうございます。
ActiveSheet.Nameを使って無事達成できました。
ということはVBAだったということなんでしょうか?
バージョンを確認すると「Microsoft Visual Basic 6.5」と出ていたのでVB6と書いてました。

ともかく、当初の問題は解決しました。ありがとうございましたm(__)m

編集 削除