早速ですが質問させていただきたいと思います。
エクセルに「取込」ボタンがあり、それを押してダイアログからエクセルファイルを選択、選択したファイルを取り込んで表示、項目チェック、といったことを行いたいです。
ですが、エクセルファイルを取り込む、というところで詰まってしまっています。
色々調べた結果、テキストやcsvファイルの取り込み方法は見つけられたのですが、エクセルの取り込み方法は見つけることが出来ませんでした。
どなたか、エクセルファイルの取込方法についてアドバイス、もしくは参考になるサイト等教えていただければ幸いです。
宜しくお願いします。
まずは環境を書いて下さい。 VB6なのか、VB_NETなのか?
VB6なら下記の花ちゃんさんのページの
「カテゴリ別一覧」「Excel・Word関係」
ただし
かならず下記を読んでからにして下さい。
「VBからExcel及びWordを操作する時の注意事項(最初に必ずお読み下さい)」
http://hanatyan.sakura.ne.jp/
Visual Basic .NET で Excel を自動化し、
配列による範囲内へのデータ入力
および範囲内からのデータ取得を行う方法
http://support.microsoft.com/kb/302094/ja
ただ「エクセルファイルの取り込み」という概念はないと思ったほうがいいと思います。
エクセルファイル=エクセルブック=複数シートの集合です。
返信ありがとうございます。
申し訳ありません。取り込むファイルはエクセルファイルでなく、tsvファイルでしたm(__)m
その上で、各種サイトを参考にファイルを読み込むことは成功しました。
ただ、ボタンを押したシートの判別方法が分からず困っています。
おおまかな処理の流れは下記の通りです。
1.ダイアログを開いてtsvファイルを選択
2.選択したファイルをエクセル上に表示
3.表示した項目のチェックを行う
4.エラーの項目はセルの背景色を変える
上記、2までは成功し、3のところで詰まっています。
例)tsvの中身が氏名、年齢とした時、シート1では氏名のチェック(全角○字以下)、シート2では年齢のチェック(数字か)を行う。
とした時にボタンを押したシートのシート名で分岐を行いたいのですが、それは可能でしょうか?
自分で調べた限りシート名の取得は出来ても、ボタンを押した(アクティブな)シートの名前を取得する方法を見つけることが出来ませんでした。
調べ方が悪いと言われたらそれまでですが、何卒アドバイスを宜しくお願い致します。
なお、使用しているのはVB6です。
「ボタンを押したシート」って何?
VB6からExcelをどう操作してるの?
#実はVBAだったりしない?
こんなのを作ります。
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.ほにゃらら
で操作出来るはずです。
#多分私より詳しいと思いますので
#ボタンとマクロのひも付けについては詳しくは書き(け)ません。
あ、VBAの場合の話です。
#ここはVB全般に回答がつきますので
#環境は書いた方が吉です。
ありがとうございます。
ActiveSheet.Nameを使って無事達成できました。
ということはVBAだったということなんでしょうか?
バージョンを確認すると「Microsoft Visual Basic 6.5」と出ていたのでVB6と書いてました。
ともかく、当初の問題は解決しました。ありがとうございましたm(__)m