掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CSVファイルをExcelに読み込む前にセルの位置を移動させるには? (ID:108513)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
OpenTextは、テキストファイルを1枚のシートとして、 それを含む新しいブックを開くメソッドですよね。 (Excelからの操作でいえば、[ファイル]-[開く]に相当します) 一方のQueryTableは、ワークシートに外部データ(例えばテキストファイル)を 貼り込むためのメソッドです。この場合、新規のワークシートを作成して、 そこに読み込ませるようにする事もできますし、既存のワークシートの 特定位置(例えば2行目…すなわち、A2セルから)に貼り込む事もできます。 (Excelからの操作でいえば、[データ]-[外部データの取り込み]にあたります) > これもやはりQueryを使う必要があるのでしょうか? 使わなくても良いでしょうし、使っても良いでしょうね。お好きな方法でどうぞ。 今回記述した方法以外にも、やり方はいろいろ考えられるかと思いますので、 最終的に、ご自身の仕様にマッチしていると思われる手法を選択してください。 # たとえば(多少回りくどい方法ですが)、Openステートメントでファイルを開いて、 # それをDDEにてセルに埋め込んで行く……なんて方法なども考えられますし。 > Workbooks.OpenText()は使えないということでしょうか? そんな事はないと思いますよ。ただしOpenTextの場合は、2行目に貼り込むという 機能はありませんから、OpenTextした後に、先頭に空行を挿入してやるようにするか、 もしくは、OpenTextした後に、その内容を別のシートの2行目以降にCopyする事になるかと。 > あと、データを貼り付ける際、既存のファイルがあってCSVの値だけ > 上書きで保存したいと考えているのですが、可能なのでしょうか? これは、 あるテキストファイルの内容を、Excelの2行目以降に貼り付けた後で、 その2行目以降の内容を、別の(既存の)テキストファイルにCSV形式で保存したい。 という事でしょうか。それとも、 あるテキストファイルの内容を、既存*.xlsファイル上のワークシートの 2行目以降に、貼り込みたい。この時に、ワークシート上にあるデータは 無視して、上書きされるようにしたい。 という事でしょうか。(それとも…?) 前者であれば、 案1: Openステートメントでテキストファイルを開き、自前でCSVを作成。 案2: データだけを新規ワークシートに複写しておき、そのシートだけを SaveAsメソッドで、Excel形式のCSVファイルとして保存する。 などといった方法が考えられます。 後者であれば、やはりQueryTableを使うのが楽でしょう。 あらかじめ、xls上の特定位置にQueryTableを定義しておけば、 簡単にデータを更新させる事ができます。 QueryTableは、ワークシートに外部データ(例えばテキストファイル)を 貼り込むためのメソッドです。この場合、新規のワークシートを作成して、 そこに読み込ませるようにする事もできますし、既存のワークシートの 特定位置(例えば2行目…すなわち、A2セルから)に貼り込む事もできます。 (Excelでいえば、[データ]-[外部データの取り込み]-[データの取り込み]に相当) もちろん、『システムの仕様上、QueryTableでは都合が悪い』などという理由があれば、 OpenTextを使って、先述したような方法で処理するのも一つの手かと思います。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.