dポイントプレゼントキャンペーン実施中!

csv形式のファイル(内容は計測値データ)をエクセルに読み込み、csvファイルの各データが規定値内に納まっているかの確認が容易できる方法を探しています。

このとき条件として、
(1)csvファイル内のデータは10項目程度。
(2)csvデータはランダムに更新される。
(3)エクセルに読み込むときはエクセルシート内の決められたセルにそれぞれデータが格納されること。
(例)csvファイルに"110"と"119"の2種類のデータがあった場合、あらかじめxlsファイルのセルA1に「警察」、セルA2に「消防署」と記入しておき、csvファイルのデータを読み込んだとき、セルB1に"110"、セルB2に"119"と入力される。
(4)csvファイル自体は開かず、必要なときにあらかじめ作成したxlsファイルを立ち上げると、自動でcsvファイルの内容を吸い上げる。
(5)入力されたデータの適否をそれぞれ判定する。
(6)xlsファイルを立ち上げている間にcsvファイルが更新された場合、xlsファイルの更新方法は手動と自動を選択できる。

こんなこと出来るでしょうか?
特に(4)が困っています。csvファイルをエクセルで開いた状態であれば、この内容で出来たのですが・・・。
どなたか良い方法があったら教えて下さい。お願いします。

A 回答 (3件)

(4)に対する回答です(応用すれば(6)もできるでしょう)。



たぶん、マクロを使わないとできないと思います。マクロを使っていいならいろいろ方法はあるでしょうが
一例として

1)マクロを組み込みたいブックを開き、[Alt]+[F11]でVBエディタを開きます。

2)通常左上に表示されるプロジェクトエクスプローラーの「ThisWorkbook」をWクリックします。

3)右側のエディタウィンドウに以下のコードを貼り付けます。

Private Sub Workbook_Open()
Workbooks("abc.xls").Sheets(1).Activate
Cells.Select
Selection.ClearContents
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & "c:\xyz.csv", Destination:=Range("A1"))
.TextFileCommaDelimiter = True
.Refresh BackgroundQuery:=False
End With
End Sub

※ここで「abc.xls」はこのブック自身のファイル名、「c:\xyz.csv」は取り込みたいcsvファイルのパス・ファイル名です。
 また、Sheets(1)は1枚目のシートに貼り付ける指定です。それぞれ適当に変更します。

4)ブックを保存終了し、再度、このブックを開いてください。


Excel自体、マクロを使用できない設定になっていると動きません。その際は、
[ツール]→[オプション]→[セキュリティ]→[マクロセキュリティ]→[セキュリティレベル]
で「中」か「低」に設定してください。


うまくできますように......
    • good
    • 1
この回答へのお礼

大変参考になりました。本音はマクロを組まずにできれば良かったのですが、ここは妥協します。止む終えません。
csvファイルを開かずにデータを取り出せたので、あとは教えて頂いたプログラムを参考に応用してみます。
実際は質問で書いた内容より複雑なことをやろうとしていますが、今のところそれなりにできつつあります。
本当にありがとうございました。

お礼日時:2005/02/05 13:39

>特に(4)が困っています。



VBやACCESSならやったことがあります。
EXCELにもタイマーがあればできるとは思いますが…
    • good
    • 0
この回答へのお礼

ありがとうございました。
とりあえずVBで検討してみることにします。

お礼日時:2005/02/05 13:44

> (4)csvファイル自体は開かず、


開かないと読めません。
Excelワークシートとしてではなく、VBAにコードを書いて、テキストファイルとして読めばよろしいか、と。

ファイルの位置(ドライブ+パス+ファイル名)が固定されているなら、かなり簡単です。
110、119の条件も、作り込み可能ですし。
    • good
    • 0
この回答へのお礼

なかなか都合良くはいかないようですね。
ファイルの位置は決まっているのでVBで検討してみます。
ありがとうございました。

お礼日時:2005/02/05 13:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!