[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/04/26(Wed) 10:08
投稿者名:おじん
Eメール:
URL :
タイトル:
エクセル、行指定して読み込むには
ここの、サンプル251を使用して、
    FileName="f:\test11x11.csv"
    Set xlApp = New Excel.Application
    xlApp.StatusBar = FileName & "を開いています。"
    '(各列のデータに合ったデータ型を指定して<これ省略)読み込み
    xlApp.Workbooks.OpenText FileName:=FileName, _
        DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        Comma:=True, _
        StartRow:=4        '<---------付け加える '<-----Arrayは取る
でやってのですが、"A1"から展開され、うまくいきません。
また、"C4"から展開したい(読み込みたい)場合にはどのようにしたら
よいのでしょうか。マクロをつくり参照したのですが分かりませんでした。
なお、入力ファイルは".CSV"で、サンプルコードの一部、
        'FileCopy App.Path & "\test.csv", App.Path & "\test01.txt"
はコメントをつけて実行しました(注意にある「日付」のこと、実現でき
なかったため)。
よろしくお願いいたします。

投稿時間:2006/04/26(Wed) 12:34
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: エクセル、行指定して読み込むには
> でやってのですが、"A1"から展開され、うまくいきません。
> また、"C4"から展開したい(読み込みたい)場合にはどのようにしたら

Excel のファイルのオープン機能には、途中から読み込むとか、一部だけ読み込む
ような機能はありません。
又、VBでCSVファイルを読み込むにしたって、同様に途中からとか一部だけとかを
読み込む事はできません。

すべて、読み込み要らない部分を取得しないようにするしか方法はありません。
一旦Excel上に読み込んで、行削除、列削除をするか、VBで必要な部分を読み込み
(要らない部分は読み飛ばす)それをVBからExcelのセルに書き込む事になるかと
思います。

投稿時間:2006/04/26(Wed) 13:09
投稿者名:おじん
Eメール:
URL :
タイトル:
Re^2: ありがとうございました
> > でやってのですが、"A1"から展開され、うまくいきません。
> > また、"C4"から展開したい(読み込みたい)場合にはどのようにしたら
>
> Excel のファイルのオープン機能には、途中から読み込むとか、一部だけ読み込む
> ような機能はありません。
> 又、VBでCSVファイルを読み込むにしたって、同様に途中からとか一部だけとかを
> 読み込む事はできません。
>
毎度のこと、言葉足らず=様子を説明しきらないで申し訳ありません。
データは1件目からすべて読みます。それをエクセルのセルB4から展開したい
ということです。
ハンドワーク(マクロを記録して)では、
    Range("B4").Select
    ChDir "F:\"
    Workbooks.Open Filename:="F:\file11x11.csv"
    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
    ActiveWindow.Close
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;F:\file11x11.csv", _
        Destination:=Range("B4"))
  以下略
のようになって、B4から展開されました。
6個のCSVファイルをエクセルテンプレートファイルの6つのsheetsに展開する
作業がこれを単位として1日に100回近くあります。どうにか「簡単:手間
いらず」にできないものかと(現在は手分けしてハンドワーク。大変そうな
様子をみると、つい好奇心にかられて、、)。
エクセル・VBAを初歩から勉強し、何時の日かまたチャレンジします。
お手を煩わせました。ありがとうございました。

投稿時間:2006/04/26(Wed) 14:56
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: ありがとうございました
> 6個のCSVファイルをエクセルテンプレートファイルの6つのsheetsに展開する
> 作業がこれを単位として1日に100回近くあります。どうにか「簡単:手間
> いらず」にできないものかと(現在は手分けしてハンドワーク。大変そうな

それなら、現在手作業でしている方法をコードで書けばいいのでは
前記のような事は手作業でも出来ないのではないでしょうか?

多分、一旦他のシートに読み込んで必要な部分をコピペしているのでは。

投稿時間:2006/04/26(Wed) 16:21
投稿者名:おじん
Eメール:
URL :
タイトル:
Re^4: ありがとうございました
> それなら、現在手作業でしている方法をコードで書けばいいのでは
> 前記のような事は手作業でも出来ないのではないでしょうか?

マクロ記述を見てもVBへ移植する方法がわからない、、残念ですが。
サンプル012の方法では可能なのですが、時間がかかり、一気読みなら
早いのではと、、。当面はサンプル012の方法を使用します。ただし、
sheetの切り替えなどまだ未解決なことがありますが、がんばります。
なお、前記の方法は、手数は多くなりますが、手作業で可能です。
重ね重ね、ありがとうございます。