● Microsoft Query に、「.txt」や「.csv」といったテキストファイルの内容を「テーブル」として読み込む方法(テキストファイルをMicrosoft Queryの「テーブル」に指定する方法)

※間違ってたらすみません。
※メモ書きなので、自分でも意味不明な箇所も多いです。ごめんなさい。

目次
 ★ はじめに
 ★ Microsoft Query へのテキストファイルの読み込み方(A)~Microsoft Query 本体ファイルから読み込む
 ★ Microsoft Query へのテキストファイルの読み込み方(B)~Excelから読み込む(バージョン2000の場合)
 ★ Microsoft Query へのテキストファイルの読み込み方(C)~Excelから読み込む(2010の32bitの場合)
 ★ Microsoft Query へのテキストファイルの読み込み方(D)~Excelから読み込む(2010の64bitの場合)
 ★ 「INSET INTO ~ VALUE ~ 」にて、レコードの追加も一応できます。
※Shift+TABキー、もしくは、Homeキー、Homeキー+TAB数回、を押すと、目次付近に戻れます。

★ はじめに

Microsoft Queryでは、テキストファイルも「テーブル」として読み込むことができます。

テキストファイルは「.txt」や「.csv」といった拡張子のファイルのことです。

古いExcelは65536行しか読み込めないのですが、データソースがテキストファイルで、かつ、古いExelの限界(65536行)を超えていて、でも、何らかのデータ抽出条件で絞り込んだ件数がその行数以下なら、Excelに抽出結果を表示することができます。

逆に言うと、テキストファイルにて、65536行を超えたデータがあったとしても、たとえば「何らかのデータベースシステムにいったん吸い込ませたり等々をせずとも」、Excelから直接、そのテキストファイルを読みに行って、絞り込み結果を表示することができます。

Microsoft QueryとExcelはあくまでも「連携しているだけ」であり、「もともとは個別の独立し合ったプログラム」なので、古いExcelの「65536行」の制限は、Microsoft Query には当てはまらないのです。Microsoft Queryも、その画面の中では数千行しか表示できませんが、でも、Excelのシートの側にMicrosoft Query での絞り込み結果を表示する際は、ちゃんとその数千行を超えた、「65536行」までが表示されます(2007以降なら100万行まで可能)。

つまり、モトのソースの表の行数は65536行以上でもかまわないし、Excelの仕様の範囲内でソースの絞り込み結果を表示することができる・・・、ということです。

ついでに言うと、これはピボットテーブルでも同じです。
例えばピボットテーブルでソースの表を指定するときに「外部データソース」を使う場合です。ソースとなる表を指定する際に「外部データソース」を使う場合、間にMicrosoft Queryが入ってくれてソースデータを指定できるようになっています。ここで、例えばAccessの中にある表や、他のデータベースシステムの中にある表を指定するとき、その件数(行数)は、古いExcelの場合でも、65536行を超えていても何の問題もありません。
ピボットテーブルで集計された結果が65536行以上になりさえしなければいいので。
ソースの表の件数は、古いExcelでも、その制限を受けないのです。

  
  
★ Microsoft Query へのテキストファイルの読み込み方(A)~Microsoft Query 本体ファイルから読み込む

【Microsoft Queryの画面を単独のプログラムとして直接開く方法】
Microsoft QueryはExcelからだけでなく、1つの独立したプログラムとしても起動することができます。

例えば、Office2010(32bit)がインストールされているパソコンなら、次のパスで起動できると思います。
"C:\Program Files (x86)\Microsoft Office\Office14\MSQRY32.EXE"

64bitの場合は、以下かもしれません。
"C:\Program Files\Microsoft Office\Office14\MSQRY32.EXE"

画面の開き方は2つあって、ショートカットアイコンを使う方法と、「ファイル名を指定して実行」で開く方法です。

まず、ショートカットアイコンを使う方法は次の通りです。
・何でもいいので適当なテキストファイルのショートカットアイコンをまず作ります。
・そしてそれを、右クリックしてプロパティを押し、「リンク先」の欄に上記のパス「"C:\Program Files (x86)\Microsoft Office\Office14\MSQRY32.EXE"」などをダブルクォーテーションが付いたままコピペします。
・一応、管理者として実行をしたほうがいいかもしれないので、「詳細設定」ボタンを押し、「管理者として実行」にチェックを入れて「OK」します。
・戻った画面でさらにOKすると、そのショートカットアイコンは、Microsoft Queryの画面用のアイコンになります。
・ショートカットアイコンの名前を「Microsoft Query起動」などと変えます。
・あとは毎回これをダブルクリックすれば、UACが起動するので「はい」でMicrosoft Queryの画面が出ます。

※下図は、設定時の画面です。

  
  
「ファイル名を指定して実行」で開く方法は次のとおりです。
・Windowsキーを押しながらRキーを押します。「ファイル名を指定して実行」ダイアログが出ます。
・「名前」の欄に、前述のパス「"C:\Program Files (x86)\Microsoft Office\Office14\MSQRY32.EXE"」などをダブルクォーテーションが付いたままコピペします。
・OKボタンをを押します。
・UACが起動するので「はい」でMicrosoft Queryの画面が出ます。

※下図は「ファイル名を指定して実行」ダイアログの「名前」の欄に、Microsoft Queryのパスをコピペしたところです。

  
  
【Microsoft Queryの画面に、テキストファイルのテーブルデータを読み込む方法】
Microsoft Queryの画面が表示されてからのテキストファイルの読み込み方は以下の通りです。

(a)ファイル→新規作成、とクリックしていきます。
(b)「データソースの選択」ダイアログの「データベース」タブをクリック
(c)リストの中の「<新規データベース>」をダブルクリック。
  「新規データソースの作成」のダイアログが出ます。
(d)「新規データソース名を入力してください」の欄に、読み込みたいテキストファイル名を
  入力します。(例えば、「A.txt」とか。どこかのフォルダに入っているファイルなら、
  そのファイル名だけを書きます。パスは書かなくていいです。※ただし、基本、
  好きな名前を付けてOKです。)
(e)「アクセスするデータベースの種類に対応するドライバーを選択してください」の
  ドロップダウンで、下のほうの「Microsoft Text Diriver(*.txt,*.csv)」を選びます。
(f)「接続」ボタンを押します。「ODBCテキストセットアップ」のダイアログが出ます。
(g)「現在のフォルダーを使用する」のチェックをはずします。
(h)「フォルダの選択」ボタンにて、読み込みたいテキストファイルが格納されたフォルダを
  探します。ダイアログ左にそのファイルがグレーアウトして見えてくるので、
  見えたら「OK」します。
(i)「ODBCテキストセットアップ」のダイアログに戻りますので、そこでも「OK」します。
(j)「新規データソースの作成」のダイアログに戻りますので、
  「データソースの標準のテーブルを指定してくだいさい(オプション)」の
  ドロップダウンで、先ほど(h)で見えていたファイル名の目的のものをクリックします。
(k)「データソースの選択」ダイアログのリストに、(d)で付けた名前のものがリストアップされます。
(l)それをクリックして青色反転選択し、「OK」ボタンを押します。
(m)『「付けた名前」からのクエリ』という子ウィンドウで、Microsoft Queryの画面が開きます。(下図)

(n)※バージョン2010などで(?)、すぐにその画面が開かない場合は、下図のようになるかもしれませんので、その場合は、目的のテキストファイルの名前を左側のペインでクリックしてから、下図の赤枠のところを押して、「次へ「次へ」「完了」で、Microsoft Queryの画面が出ると思います。

(o)最終的には下図のようになります。

  
  
★ Microsoft Query へのテキストファイルの読み込み方(B)~Excelから読み込む(バージョン2000の場合)

【Microsoft Queryの画面をExcelから開く方法(バージョン2000の場合)】
ExcelからMicrosoft Query へのテキストファイルを読み込ませるには、Excelのメニューから行きます。

(a)Excel画面にて、「データ→外部データの取り込み→新しいデータベースクエリ」、とクリックしていき、出てきたダイアログの「データベース」タブで「Excel Files*」を選んで「OK」ボタンを押します(「Excel Files*」のダブルクリックでもOKです)。
テキストファイルを処理するのですが、Excelからの場合は、操作上の手間を省くために敢えて「Excel Files*」を選びます。(「データソース」として付けた名前(好きな名前)が表示されないようにもします。MSQUERY.EXE単体から操作した場合はそれが必ず残ってしまうので。あえて残したい場合は別ですが・・・・。)

で、さらに出てきたファイル選択用のダイアログ(下図)を「必ず」、「キャンセル」、します。(これも操作上の手間を省くためです。)

すると、Microsoft Queryののっぺらぼうのグレー画面が出てくるので、「ファイル→新規作成」とクリックします。
あとは、(b)~(l)までは、前項の「MSQUERY.EXE単体から操作した場合」と全く同じです。
ただ、(l)を実行すると以下のようなダイアログが出てくるので、ここでも それぞれ「キャンセル」と「はい」を押します。※2019/02/15現時点で図の赤枠が間違っています。すみません!!(なお、「キャンセル」を押さずに、目的のファイルの名前を左側のペインでクリックしてから、なおかつ「 > 」のボタンを押し、そして「次へ」「次へ」「次へ」「Microsoft Queryでデータの表示またはクエリの編集を行う」のほうに丸ポチを入れて、「完了」でOKな場合もあります。)

さらに以下のようなダイアログが出ますので、ここで、目的のテキストファイル名をダブルクリックするか、ワンクリックして「追加」ボタンを押します。
この下図のダイアログを右に移動してからやると、テーブルが出てくるのがよくわかります。確認出来たら、ダイアログの「閉じる」ボタンを押します。

(m)『「付けた名前」からのクエリ』という子ウィンドウで、Microsoft Queryの画面が開きます。(下図)

Microsoft Queryの画面で自分の好きなようにデータをいじったら、あとは、Microsoft Queryの画面の側で「ファイル→Microsoft Excelにデータを返す」をやるか、「×」ボタンで閉じるかすれば、Excelシートに結果が表示されます。
  
  
★ Microsoft Query へのテキストファイルの読み込み方(C)~Excelから読み込む(2010の32bitの場合)

【Microsoft Queryの画面をExcelから開く方法(バージョン2010の32bitの場合)】
(a)「データタブ→その他のデータソース→Microsoft Query」、とクリックしていき、出てきたダイアログの「データベース」タブで「Excel Files*」を選んで「OK」ボタンを押します(「Excel Files*」のダブルクリックでもOKです。ここでも操作上の手間を省くために敢えて「Excel Files*」を選びます。)。で、さらに出てきたファイル選択用のダイアログをキャンセルします。すると、Microsoft Queryののっぺらぼうの画面が出てくるので、「ファイル→新規作成」とクリックします。
(b)以降は、すべて前項と全く同じです。(あるいは、最初にご説明した「MSQUERY.EXE単体での操作」の場合と全く同じです。)
最終的に下図のような感じになります。

※操作の途中で、最初にご説明した「MSQUERY.EXE単体で処理する場合」の (n)のような画面(下図)が出るかもしれませんので、その場合は、目的のテキストファイルの名前を左側のペインでクリックしてから、下図の赤枠のところを押してから「次へ」「次へ」「次へ」「Microsoft Queryでデータの表示またはクエリの編集を行う」のほうに丸ポチを入れて「完了」、で、Microsoft Queryの画面が出ると思います。

  
  
★ Microsoft Query へのテキストファイルの読み込み方(D)~Excelから読み込む(2010の64bitの場合)

【Microsoft Queryの画面をExcelから開く方法(バージョン2010の64bitの場合)】
基本的には、前項と(a)から最後まで全部同じです。

ただ、以下のサイトによると、64bitOS上であっても、32bit版のExcelがインストールされてしまっているか、それとも、64bit版のExcelがインストールされてしまっているかでドライバが違うようなので、もし、前項の(e)の段階で「Microsoft Text Diriver(*.txt,*.csv)」を使っても読み込めないとか、読み込めたけど何かおかしいとかになったら、下記のWeb記事の「Microsoft Text Driver (.txt; .csv)」を試してみてください。

「ODBCのText DriverとExcelとを使ってCSVファイルをSQLで検索・抽出する」
http://haneimo.hatenablog.com/entry/20160830/1472527773
この記事によると、「64bit版のText DriverはAccessを買わなくても以下のページで無料で入手可能らしいです。」とのことでした。
  
  

★ 「INSET INTO ~ VALUE ~ 」にて、レコードの追加も一応できます。

Microsoft Queryの画面上でなら、「INSET INTO ~ VALUE ~ 」にて、レコードの追加も一応できます。
が、SQL文でしかレコードの追加ができないみたいです。
そこが、Accessのクエリ(簡易SQL機能)と違うところです。

また、「INSET INTO ~ VALUE ~ 」にて、レコードの追加してしまうと、SQL文を書く画面でSQLを書かないと、表データが表示されていた時点の状態に戻れないので、「INSET INTO ~ VALUE ~ 」でレコードの追加をしてしまうまえに、SQL画面でSQL文をどこかにコピペしておきます。
そうすれば、レコード追加した後でも、SQL画面にその文をコピペしてOKすれば、表データが表示されていた時点の状態に戻れます。