tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルExcelのデータを取込みたい
記事No15866
投稿日: 2014/03/17(Mon) 09:18
投稿者銭形
初めて投稿させていただく銭形と申します。
なぜかVB6を使うことになり、使い始めて2か月の超初心者です。
質問ですが、花ちゃんのHPを色々と拝見し、構文を使わせてもらっていますが、下記のような場合、
うまくデータを取り込めません。すみませんが、アドバイスノほどよろしくお願い致します。
(ちなみに、VB6.0、Windows7、Excel2010)
【質問】
Excelシートから色々な表示形式の゛ータを取り込む際、分数で表示形式されているデータを取込むと
数値(小数点)で取り込まれてしまう。
見た目には、3/8と表示されているが、実際にカーソルをあてると0.375と表示されている。
この3/8のまま取り込みたいのですが、可能でしょうか?下記の構文だと、0.375で取り込まれてしまう。
◎Excel側
   A  B  C  D・・・
 1 AA 3/8 ←この3/8の場所にカーソルをあてると0.375と表示される。(表示形式が分数になっている)
 2 BB ABC  200
 :
(省略)
    Set DB = OpenDatabase(xlFileName, False, False, "Excel 8.0;HDR=NO;IMEX=1")
    Set rs = DB.OpenRecordset(xlSheetName)
    Do Until rs.EOF
        With rs
        MyData = ""
        MyData =  .Fields(0) & "," & .Fields(1) & "," & .Fields(2) & "," & .Fields(3)
   ※.Fields(1)に、0.375が入ってしまう。(出来れば3/8のまま取り込みたい)
(省略)
わかりにくい文章で申し訳ございませんが、よろしくお願いいたします。

[ツリー表示へ]
タイトルRe: Excelのデータを取込みたい
記事No15867
投稿日: 2014/03/17(Mon) 11:32
投稿者魔界の仮面弁士
>    A  B  C  D・・・
>  1 AA 3/8 ←この3/8の場所にカーソルをあてると0.375と表示される。(表示形式が分数になっている)
>  2 BB ABC  200

数値データの場合、その書式情報(分数表記、小数桁数、負数赤色など)は無視されます。
文字列としての「3/8」ならばそのまま取得することもできるのですけれどね。


書式を反映した結果として取得したいのであれば、Recordset として扱うのではなく、
Excel を直接制御して取得してください。
Range オブジェクトの Text プロパティを使うと、表示形式に沿った表現で取得できます。

[ツリー表示へ]
タイトルRe^2: Excelのデータを取込みたい
記事No15868
投稿日: 2014/03/17(Mon) 12:01
投稿者銭形
> >    A  B  C  D・・・
> >  1 AA 3/8 ←この3/8の場所にカーソルをあてると0.375と表示される。(表示形式が分数になっている)
> >  2 BB ABC  200
>
> 数値データの場合、その書式情報(分数表記、小数桁数、負数赤色など)は無視されます。
> 文字列としての「3/8」ならばそのまま取得することもできるのですけれどね。
>
>
> 書式を反映した結果として取得したいのであれば、Recordset として扱うのではなく、
> Excel を直接制御して取得してください。
> Range オブジェクトの Text プロパティを使うと、表示形式に沿った表現で取得できます。

魔法の仮面弁士様、さっそくのアドバイスありがとうございます。
RangeオブジェクトのTextプロパティを使うと・・・と書いてありますが、正直言って、
どうしていいのか分かりません。とりあえず、アドバイス頂いたことを調べてみてトライしてみます。
勝手なことを言って申し訳ございませんが、何かヒントにでもなるようなことがあればよろしくお願い
致します。また調べてわからないことがあれば質問させて頂きたいと思いますので、よろしくお願い
します。

[ツリー表示へ]
タイトルRe: Excelのデータを取込みたい
記事No15869
投稿日: 2014/03/17(Mon) 15:27
投稿者YK
こんにちは。
エクセルを csv で保存してそれを読み込めばどうでしょう。
表示されている値が保存されますから加工しやすいかと

[ツリー表示へ]
タイトルRe^2: Excelのデータを取込みたい
記事No15872
投稿日: 2014/03/18(Tue) 08:29
投稿者銭形
> こんにちは。
> エクセルを csv で保存してそれを読み込めばどうでしょう。
> 表示されている値が保存されますから加工しやすいかと

YKさん、返事が遅くなり申し訳ございません。
CSV形式で保存してから・・・とは思い浮かびませんでした。
魔法の仮面弁士さんの方法、また、YKさんの方法も試してみたいと思います。
また、やってみて解らない点や疑問点が出ましたら、相談させて頂きたいと思いますので、
その時は、よろしくお願いいたします。

[ツリー表示へ]