ひながたを作る【C#を始めよう】

 C#でプログラムを始めてみる連載の3回目です。前回の記事はコチラです。

hirocom777.hatenadiary.org

ツールのひな形を作る

 前回はC#の開発環境であるVisual StudioIDE画面についてご紹介しました。また、この時点でなにもない空っぽのWindowsフォーム(以下、フォーム)ができていることも確認しました。今回はこのフォームをもとにツールのひな形を作ってみましょう。

f:id:HiroCom777:20210404210300j:plain

どんなツールを作るのか

 今回作るツールはテキストエディターです。テキストエディターはどんなツールでしょうか?立ち上げるとテキストを入力するボックスがフォーム上に現れて文字の入力、編集ができる。テキストファイルを開いて表示したり、編集結果を保存できたりする。こんな感じだと思います。現状のフォームは開いたり閉じたりはできますが、テキスト入力用のボックスはありません。まずはこれを配置しなければいけませんね。

部品を配置する

 実を言うとVisual Studioにはテキスト入力ができるようになる部品が用意されています。この部品を選択、使用するには、前回ご紹介したツールボックスを使います。IDE画面の右側に配置されていますよね。いろいろな英語が並んでいますが、この中から'TextBox'を選んでください。次に、フォーム上にカーソルを移してフォーム内に、配置したい場所をクリックして選択してみてください。

 以下のような画面になりました。

f:id:HiroCom777:20210404210517j:plain

細長くて白い四角がTextBox(以下、テキストボックス)です。サイズを調整したいのですが、このままでは幅をかえることしかできません。右上の右向き三角をクリックするとメニューが現れますので'MultiLine'にチェックを入れましょう。

f:id:HiroCom777:20210404212300j:plain

これで高さも調整できるようになりました。フォーム内いっぱいに広がるように大きさを変えます。

f:id:HiroCom777:20210404214128j:plain

プロパティウィンドウの使い方

今の所このツールを構成しているのはフォームとテキストボックス。まずはこの2つの設定をしていきましょう。設定には前回ご紹介したプロパティウィンドウを使います。プロパティウィンドウは以下の構成になっています。

f:id:HiroCom777:20210404212125j:plain

 プロパティを表示しているコントロール名です。ドロップダウンで選択する事もできます。

  • 表示順の指定(B)

 プロパティウィンドウには、選択されたコントロールのプロパティ一覧が表示されるのですが、その表示順を指定できます。左が項目別。右がアルファベット順です。

  • プロパティとイベントの切り替え(C)

 プロパティウィンドウには、選択されたコントロールのイベント一覧についても表示ができます。左がプロパティ。右がイベントです。イベントについては別途ご紹介したいと思います。ひとまずプロパティを選択しておいてください。

  • プロパティ(イベント)一覧(D)

 選択されたコントロールのプロパティ一覧が表示されます。左がプロパティ名、右が設定されている値です。左側でプロパティを選択して、右側の値を設定します。

  • プロパティの説明(E)

 選択されたプロパティの説明が表示されます。

プロパティで名前と表示を設定

 まずは、フォーム、テキストボックスの名前と表示を設定をしましょう。

  • フォーム

 フォームを選択してプロパティウィンドウを表示します。まずフォーム自体の名前ですがForm1となっているので管理しやすいように名前を変更しましょう。プロパティ(Name)を選択して、ここでは'frmMain'とします。

f:id:HiroCom777:20210404230838j:plain

また、フォーム左上の表示もForm1となっています。通常この表示はツール名を表示するので、ここも変更しましょう。プロパティTextを選択して'TextEditor'と設定します。

f:id:HiroCom777:20210404231448j:plain

  • テキストボックス

 続いてテキストボックスです。テキストボックスを選択すると、プロパティウィンドウの内容もテキストボックスに切り替わります。テキストボックスの名前もフォーム同様に変更します。プロパティ(Name)を選択して、'txtMain'としましょう。

f:id:HiroCom777:20210404232203j:plain

この状態で一度実行してみましょう。F5キーを押してみます。 f:id:HiroCom777:20210404233351j:plain

文字が入力できそうなフォームが立ち上がりました。文字の入力、編集もできるじゃないですか!! ひょっとしてテキストエディターはもう完成しているんじゃないですか?

まだ手を加える必要

いやいや、いくらなんでも早すぎです。大体、まだプログラムらしいコードなんか書いていません。テキストファイルの読み込みも保存もできない。それに、フォームのサイズを変えるとほら、テキストボックスのサイズは変更されないでバランスがおかしくなってしまいます。 f:id:HiroCom777:20210404233818j:plain

普通のツールみたいにフォームのサイズの変更にあわせてサイズを変更したいです。手を加えなければならないところはたくさんありますね。

次回は表示の調整

 かなり形になってきました。次回はもう少し表示を調整していこうと思います。お楽しみに!!

hirocom777.hatenadiary.org C#で簡単なツールを作る連載記事はコチラからどうぞ

充実した時間を過ごせているか


充実した時間とは

2021年も3か月が過ぎました。1/4が過ぎたことになります。この3か月間、僕には色々なことが有った期間でした。

f:id:HiroCom777:20210330230336j:plain

僕の今年の目標は充実した時間を過ごすことです。

hirocom777.hatenadiary.org

でも本当に充実した時間を過ごすには、充実した時間とは何なのか自分で認識する必要があります。この3か月間、充実した時間とは何なのかと自分に問いながら過ごしてきました。

偶然にも在宅勤務を命じられ、時間的に余裕が見込まれることもあったのですが、自然と自分から予定を入れまくっていて3月は本当に忙しかったです。不安だから予定を入れる。予定をこなすと達成感はある。でも多忙な日々を過ごしているとときどき虚無感に襲われる。実際には予定が埋まっていないほうが、精神的に余裕がある。でも何か予定がないと不安になる。この繰り返し。達成感と精神的な余裕。どちらが充実感に貢献するのでしょうか?

この3か月間、あまり後悔はしていないのですが、本当にこれでよかってのかという疑問は残っています。

この問題に解はあるのか?

果たして充実した時間とは何なのか?色々なことに取り組んだ時間は、結果的に充実していたのだと思います。でも、のんびり過ごす時間がない生活はなにか喪失感もある。かと言って何も予定を入れないと怠け切ってしまい、反省しっぱなしになってしまう。この2つの疑問の間で葛藤し続けました。

ゲームの世界の様に、やらなくても別に問題ない体でイベントが発生して自分のペースで進めることができれば理想的かもしれません。でも、現実的にはそんな状況はありえません。でも、その状態を意識しながら自分の生活に取り組んでいくぐらいしか、今のところ思いつきませんね。

当分悩み続けることに?

3月いっぱいで在宅勤務は終了となりました。元の生活に戻ります。達成感と精神的な余裕。この2つの間で悩むことができた時間は、ある意味贅沢だったのかもしれません。

充実した時間とは何なのか。今後もこの問題に向き合う事になりそうです。

4月からは少し時間的にはタイトになりますが、でも・・・あ、なんか惰性でスケジュールが埋まりつつあります。習慣って怖いですね。体を壊さないようにペースを守りながら頑張りたいと思います。

結論⇒健康が大事(笑)

最後までお付き合い有難うございました。

開発環境の確認【C#を始めよう】

 C#でプログラムを始めてみる連載の2回目です。前回の記事はコチラです。

hirocom777.hatenadiary.org

開発環境を確認する

 前回はC#の開発環境であるVisual Studioをダウンロード、インストールしてみました。また、Windowsフォーム アプリケーションを選択して新しいプロジェクトを作成しました。今、皆さんの前には以下のような画面が表示されていると思います。今回はこの画面について説明していきたいと思います。

f:id:HiroCom777:20210329220003j:plain

Visual StudioIDE画面

それでは画面の説明です。画面は以下の様に分かれています。

f:id:HiroCom777:20210329220138j:plain
  • メニューバー(A)

 大概のWindowsアプリケーションにあるように、Visual Studioにもメニューバーがあります。殆んどの操作はここから可能です。

 メニューバーの下にあるツールバーは、開発時に使用する項目が揃っています。デバッグコンパイル時の操作はここを通して行うことが多いです。

  • Windowsフォームデザイナー(C)

 今回開発するツールはWindowsフォーム アプリケーションですので、Windowsフォームを編集する画面があります。この画面を使ってWindowsフォームの編集をします。

 前回で新しいプロジェクトを作成しましたが、プロジェクト自体は複数のファイルとフォルダーで構成されています。ツールの開発は、これらを編集することで進めていきます。ソリューションエクスプローラーでは、ファイルやフォルダーの編集や新規作成ができます。

他に準備しておきたいもの

 上記以外にも準備しておきたいものがあります。

  • プロパティウィンドウ
f:id:HiroCom777:20210329220520j:plain

 今回開発するテキストエディターは、Windowsフォームを始めとしたあらかじめ準備されたオブジェクトを使用します。 これらのオブジェクトを使用する際に色々な設定をする必要が発生します。個々のオブジェクトの設定にはプロパティウィンドウを使用します。

 プロパティウィンドウは初期状態では表示されないことがあります。メニューバーの表示⇒プロパティウィンドウを選択(もしくはF4キー)で表示されます。表示状態は設定によっていろいろですが、'自動的に隠す'状態にしておくといいと思います。

f:id:HiroCom777:20210329220751j:plain

 Windowsフォーム アプリケーションでは、作成したWindowsフォーム上には色々なコントロール(テキストボックスやボタンなど)を配置することになります。ツールボックスWindowsフォーム上に配置するオブジェクトの一覧を表示します。ここから選択したオブジェクトをWindowsフォームに配置、設定することでツールの設計を進めていきます。

 ツールボックスも初期状態では表示されないことがあります。メニューバーの表示⇒ツールボックスを選択(もしくはCtrl+Alt+X)で表示されます。IDEの左側に表示させるといいと思います。

 これで以下のような表示になったと思います。

f:id:HiroCom777:20210329221002j:plain

それでは実行してみましょう

 いきなりで恐縮なんですが、プロジェクトを実行してみましょう。メニューバーのデバッグデバッグの開始を選択もしくはF5キーで実行されます。すると・・・

f:id:HiroCom777:20210329221324j:plain

空っぽのWindowフォームが表示されました。サイズも変えられますし、最大化、最小化、クローズもできる普通のWindowフォームです。これをひな型にしてツールを開発します。

次回からツール開発!!

 いかがでしょうか?これで準備はひととおり整いました。次回からツール開発に着手しようと思います。お楽しみに!! hirocom777.hatenadiary.org

C#で簡単なツールを作る連載記事はコチラからどうぞ

開発環境を整える【C#を始めよう】

 皆さんこんにちは、HiroCom777です。僕は普段ExcelVBAで仕事に使うツール類を作っています。便利なんですが、本格的なアプリケーションを作るのは無理がありますね。少しだけVisual BasicVB.Net)を使ったことはあるんですが、使いこなしているというにはほど遠い。おまけに去年、MicrosoftVB.Netの開発を終了することを発表しました。(サポートは継続)

f:id:HiroCom777:20210324230927j:plain

そうこうしているうちに、職場ではC#を推す気配が・・・。と言う訳で、僕もC#を学習してみようと思い立ちました。ざっくり言っちゃうと、C#VB.Netと同じVisual Studioで開発ができるプログラミング言語。聞くところによるとVB.Netでできることは、大概C#でできるらしいです。

むしろC#の方ができることが多いみたいですね。これは勉強しがいがあるというものです。興味のある方、どうぞ付き合いください。(この連載ではC#は’Microsoft Visual C Sharp’を指します)

そもそもC#とは

 上ではざっくり説明しましたが、そもそもC#って何なんでしょ。以下にまとめてみました。

 こっちの説明も簡単ですが、今のところこれで十分でしょう。

開発環境を整える

Visual Studioのインストール

 まずは、開発環境を整えます。僕の環境はWindows 10 Homeエディション。メモリは8GBです。C#を使用できるようにするには、以下のサイトからVisual Studioをダウンロード、インストールする必要があります。C#の開発はVisual Studio上で行うのが基本です。

Visual Studio のインストール | Microsoft Docs

 インストールが完了してVisual Studioが起動すると、起動画面の後に以下が表示されると思います。

f:id:HiroCom777:20210407221809j:plain

新しいプロジェクトを作る

 手始めに、簡単なツールを作りながら学んでいきましょう。シンプルなテキストエディターを作ってみたいと思います。Visual Studioではプロジェクトを1つの単位として、アプリケーションを開発します。新しいプロジェクトの作成を選択して次の’画面に移ります(①)。

f:id:HiroCom777:20210407222714j:plain

 新しいプロジェクトの作成画面に移ったら、開発言語を選択します。Visual StudioではC#以外にもVisual Basic,C++他数種類の言語が指定できますが、ここは勿論C#を選択します(②)。次に開発するアプリケーションの種類の選択です。今回開発するのはテキストエディターですから、Windowsフォーム アプリケーション(.NET Framework)を選択します(③)。選択が完了したら、右下の次へのボタンを押してください(④)。

f:id:HiroCom777:20210407222251j:plain  次の画面には、’新しいプロジェクトを構成します’とあります。まずプロジェクト名を指定しましょう。今回は’TextEditor’とします(⑤)。2つ下のソリューション名も同じように変わったと思います。次にプロジェクトを保存する場所を選択します(⑥)。終わったら右下の作成ボタンを押しましょう(⑦)。
f:id:HiroCom777:20210407223333j:plain

 何やら複雑な画面が登場しました。

f:id:HiroCom777:20210324230017j:plain
これがVisual StudioIDE画面です。IDEとは統合開発環境(Integrated Development Environment)のことです。Visual Studioでは、この画面でアプリケーションの開発を行っていきます。

次回はIDE画面とプロジェクトの説明

 いかがですか?これで開発する環境はひととおり揃いました。ただ、表示されているIDE画面はかなり複雑ですね。次回はVisual StudioIDE画面と作成したプロジェクトの構成について説明していきたいと思います。お楽しみに!! hirocom777.hatenadiary.org

C#で簡単なツールを作る連載記事はコチラからどうぞ

SPI通信(Arduino詳解)

Arduino詳解その32です。前回の記事はこちらです。 hirocom777.hatenadiary.org

SPI通信

前回はSDカードの操作についてご紹介しました。ここで使用したSDカード用ライブラリではSPI通信を使用としています。今回は、このSPI通信について説明していきたいと思います。 f:id:HiroCom777:20210312223336j:plain SPIとは、シリアル・ペリフェラル・インタフェース(Serial Peripheral Interface)の略です。コンピューター内のデバイス間通信に使用されます。マスターと呼ばれる主となるデバイスからスレーブと呼ばれる複数のデバイスへの通信が可能です。

ArduinoでSPI通信をする場合

ArduinoでSPI通信をする場合は、SPI通信用のライブラリを使用するのが一般的です。これまで紹介したスケッチの先頭にありましたが#include <SPI.h>をスケッチの先頭に記述します。使用する信号は、以下の様に割り当てられます。

  • SCLK Serial Clock(ArduinoUNOでは13番ピン)

 マスターから生成されるシリアルクロックです。

  • MISO Master In Slave Out(ArduinoUNOでは12番ピン)

 スレーブからマスターに入力されるデータの信号線です。

  • MOSI Master Out Slave In(ArduinoUNOでは11番ピン)

 マスターからスレーブに出力されるデータの信号線です。

  • SS Slave Select(任意のピンを指定。前回ご紹介したスケッチでは4番ピン)

 スレーブを選択する信号です。マスターに接続する本数だけ必要となります。

I2C通信との違い

コンピューター内のデバイス間通信に使用される手法として、I2C通信があります。I2C通信は以下の記事で紹介しています。

hirocom777.hatenadiary.org

I2C通信とSPI通信、どちらも同じ同期式シリアル通信(クロック信号で同期をとる通信方式)です。それでは2つの違いは何なんでしょうか?

まず、接続に必要な信号線の数が違います。I2C通信に必要な信号線はSCL(クロック)とSDA(データ入出力)の2本。2本だけで複数のデバイスと通信可能です。対してSPI通信は、上に示した通り4本の信号が必要となります。しかも4本で通信できるデバイスは1個だけ。通信するデバイスが増えると、デバイスの数だけSS信号が増えてしまいます。複数のデバイスと通信する場合はI2C通信の方が有利ですね。

次に通信速度はどうでしょうか。2つの通信速度を比べると、以下の様になります。

  • SPI通信 1 Mbps ~ 2 Mbps(マイコンの性能に依存)
  • I2C通信 100Kbps(標準モード)400Kbps(ファーストモード)

SPI通信の方が圧倒的に速いです。おまけにSPI通信は全二重(送信と受信の信号が別々)ですのでデータの送信、受信を別々に制御できます。I2C通信は半二重(送信と受信の信号が同じ)データの送信、受信を同時に実行することはできません。

つまり、速度が遅くても複数のデバイスを繋ぎたい場合(センサーからの値の読込みや、表示装置への出力など)はI2C通信が向いていて、高速に大きなデータをやり取りしたい場合にはSPI通信が向いていると言う事です。前回まででご紹介したSDカードへのアクセスの場合、大量のデータをやり取りするためSPI通信が採用されていると言う訳です。

I2C通信とSPI通信、特徴を良く把握して使い分けましょう。もっとも接続するデバイスがどちらの通信方式に対応いているかで決まってしまうことが殆んどです。

長いこと有難うございました

さて、この連載も長いこと続けてきましたが、ArduinoUNO詳解の連載は今回で最終回となります。長いことお付き合いいただき有難うございました。連載を通して色々勉強ができてよかったです。また別の記事を書きたいと思いますのでお楽しみに!!

Arduino UNO入門の連載記事はコチラからどうぞ!!

SQLで選んでみよう(CSVファイルをADOで扱う⑤)


CSVファイルをADOで扱う連載の5回目です。前回の記事はこちらになります。

hirocom777.hatenadiary.org

さらなる活用を考える

 前回は、ADOがCSVファイルをどのように取り扱っているかを見てきました。CSVファイルで構成されたデータベースの可能性が見えてきましたね。また、データベースとまではいかなくてもCSVファイルを色々操作して活用することができそうです。

f:id:HiroCom777:20210226235831j:plain

そのためにはSQLコマンドを思い通りに指定できる環境が必要です。そこで、以下のツール(CSV_ReaderSQL)を作ってみました。ダウンロードして見てください。

CSV_ReaderSQL110.zip - Google ドライブ

CSV_ReaderSQLの使い方

 それではツール'CSV_ReaderSQL'の使い方について説明します。まずフォルダーを用意して、その下に処理するCSVファイルを配置します。ファイル名は'名簿.csv'とします。中身は以下のテキストにしてみましょう。コピーして使ってください。

ID,名前,性別,血液型,生年月日,備考
"001","大山洋子","女性","A","2001/03/06","カラオケ大好き"
"002","山田太郎","男性","O","1970/07/05","とくになし"
"003","小田京子","女性","AB","2020/02/13","活動的"
"004","秋山昇","男性","B","2000/01/02","結構ヒマ"

Excelのマクロを有効にした状態でCSV_ReaderSQLを開いたら、'フォルダー選択'のボタンを押して先ほどのフォルダーをデータベースとして指定します。(CSVファイルの場合は、ファイルが配置されているフォルダーがデータベースになります。)次にSQLコマンド欄に、処理に使用するSQLコマンドを書きます。'実行'ボタンを押すと処理が開始されて、新しく開かれたExcelファイルのシートに結果が表示されます。簡単ですよね!!

 実際に試してみましょう。フォルダーを作って、以下のファイルを配置してください。 CSV_ReaderSQLでフォルダーを指定してからSQLコマンド欄に以下のコマンドを入力して実行してみます。

  SELECT * FROM [名簿.csv]

ファイルの内容がすべて表示されたExcelファイルが現れました。

ID 名前 性別 血液型 生年月日 備考
001 大山洋子 女性 A 2001/03/06 カラオケ大好き
002 山田太郎 男性 O 1970/07/05 とくになし
003 小田京子 女性 AB 2020/02/13 活動的
004 秋山昇 男性 B 2000/01/02 結構ヒマ

この結果はCSV_ReaderADOの読込み結果と一緒です。CSV_ReaderADOでは、内部でこのSQLコマンドを実行していたのです。

SELECTでデータを選択する

 それではSELECTについて説明します。SELECTは以下の様に記述します。

   SELECT フィールド名 FROM テーブル名

これで、テーブルから指定されたフィールド名のデータを選択するという意味になります。 今回の場合、テーブル名とは'[]'で括られたCSVファイル名です。フィールド名とは、テーブル(CSVファイル)の列の名前で、それぞれの列の先頭行に記述してある文字がこの内容になります。先のSQLコマンドではフィールド名のところが'*'となっていました。これは、すべての列を指定するという意味になります。試しに列を選択して表示してみましょう。以下のSQLコマンドを入力して実行してみてください。

  SELECT 名前,生年月日,血液型 FROM [名簿.csv] 

指定された列だけが表示されました。

名前 生年月日 血液型
大山洋子 2001/03/06 A
山田太郎 1970/07/05 O
小田京子 2020/02/13 AB
秋山昇 2000/01/02 B

また、お気づきだと思いますが列の表示順についても指定できます。生年月日と血液型の表示順が入れ替わっています。この様にADOとSQLコマンドを使うと、一味違うCSVファイルの開き方を実現できます。VBAなどで同じ処理をするコードを書くと結構大変ですよね。

行の選択はどうするの

 今回はSQLコマンドを自在に指定できるツールを作ってみました。これで色々なSQLコマンドを試すことができます。またSELECTで列方向の選択をする方法をご紹介しました。ところで今のところ、行はすべて表示する形になっていますが、行の選択はどうするんでしょうか?ということで、次回は行方向の選択に挑戦してみようと思います。お楽しみに!!

hirocom777.hatenadiary.org

CSVファイルをADOで扱う連載記事はコチラからどうぞ

さらなる活用を考える(CSVファイルをADOで扱う④)


CSVファイルをADOで扱う連載の4回目です。前回の記事はこちらになります。

hirocom777.hatenadiary.org

さらなる活用を考える

 前回は、意図しないデータ変換を防ぐCSVファイルの形式について考えてみました。すべてのデータをダブルクォーテーションで括って文字列型に固定することで意図しないデータ変換を防げることが判りました。考えてみればCSVファイルはテキストファイルなので、この方法は無難だと思います。

f:id:HiroCom777:20210221164228j:plain

 ところでこの連載ではADOを使用してCSVファイルを扱うことを主題にしていることは、すでに申しあげたとおりです。ADOは、そもそもデータベースを取り扱うためのもので、今回の例でもCSVファイルをデータベース(のテーブル)として扱っています。つまり、CSVファイルをADOで扱えば単にファイルを開くだけでなくデータベースとしてさまざまな処理ができるのです。

色々な処理ができるように考えてみる

 しかしながら現在のツールCSV_ReaderADOは、単純に選択したCSVファイルをExcelシートに展開する機能しか持っていません。そこで今回は、さまざまなデータ処理ができる機能を持ったツールを考えてみたいと思います。

 それではどうやって機能を持たせるかです。ADOに限らずデータベースを操作する場合にはSQLを使用するのが一般的です。実はCSV_ReaderADOでもコードの中にSQLコマンドを記述しています。これを自在に指定できるようにすれば、色々な操作が可能にできそうです。

 SQLとは、データベースの定義や操作を行うためのデータベース言語です。手続き型のプログラミング言語ではありません。ADOではSQLを使用してデータベースに条件を指定してデータを抽出したり、組み合わせたり、さまざまな操作を行います。

CSVファイルをデータベースとして扱う方法

 一般的にデータベースは複数のテーブル(データが集まった表のようなもの)から構成されます。ADOでCSVファイルでデータベースを構築する場合、以下の構成になります。

  • データベース CSVファイルが配置されているフォルダー
  • テーブル 個々のCSVファイル

ADOではフォルダーを指定することでCSVファイルの集まりをデータベースとしているのです。

 実際にSQLコマンドを使用した例を見てみましょう。CSV_ReaderADOでSQLコマンドを使用しているとお話ししましたが、その内容を見てみます。CSV_ReaderADOのソースリスト全体は以下を参照してください。CSV_ReaderADO本体のダウンロードもできます。

hirocom777.hatenadiary.org

ここでご紹介している2つのプロシージャのうちの1つ、cmdFile_Click内の中ほどに以下の一文があります。

ReadCsvDataBase folderName, "SELECT * FROM [" & Dir$(fileName) & "]", outputBook.ActiveSheet.Range("A1")

この一文で、もう1つのプロシージャでいるReadCsvDataBaseを呼び出しています。ReadCsvDataBaseは、その名のごとくCSVファイルを読み込むプロシージャです。ReadCsvDataBaseは、呼び出す際に3つの引数を必要とします。

  • フォルダー名

 先頭で指定している’folderName’がこれにあたります。対象となるCSVファイルがあるフォルダーを指定します。

  • SQLコマンド

 2番目に指定してある'"SELECT * FROM [" & Dir$(fileName) & "]"'がSQLコマンドです。

  • 出力先

 3番目に指定してある'outputBook.ActiveSheet.Range("A1")'が読み込んだ結果の出力先です。Excelシートのセルを指定すると、指定されたセルを左上の原点として読み込んだ内容を表示します。

ReadCsvDataBaseは、1番目のフォルダー名でデータベースを指定して、2番目のSQLコマンドで抽出するデータを指定、3番目の出力先に表示するプロシージャっていうことです。それでは、ここで記述されているSQLコマンドについて見てみましょう。ここで記述されているSQLコマンドは、実際の展開では以下の様になります。

 SELECT * FROM [CSVファイル名]

ここで記述されているSQLコマンドはSELECT文と呼ばれるものです。SELECT文はデータベースからデータを選択して取得する命令です。個々のCSVファイルがデータベースのテーブルとなることは、先に述べました。結論から言うと、『CSVファイルで指定したテーブルからすべてのデータを取得せよ』という命令です。この命令を使ってCSVファイルの内容を読み込んでいます。

ツールを考えてみる

 これで、ADOがCSVファイルをどのように取り扱っているか、概略は分かったと思います。次回はこれを踏まえてCSVファイル色々な処理ができるツールを検討してみようと思います。お楽しみに!!

hirocom777.hatenadiary.org

CSVファイルをADOで扱う連載記事はコチラからどうぞ