重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

ExcelファイルをAccessでテキスト形式に変換しようとしています。

テキスト形式に抽出した際に文字列と文字列の間に空欄を設けたいのですが、
この空欄の部分は「スペースキー」で作成したものと「tabキー」で作成したものと
微妙に異なっているようなので「tabキー」での空欄と同じ効果を持たせる方法を教えてください。

(参考例)
(1)Accsessに取り込むExcelは次のように準備しました。

         A             B        C
1行目  investigation      [名] 調査      ;
                              (コロン)

(2)これをAccessで関数を使ってひとつにし、テキスト形式にしたものがこちら。

      investigation [名]調査する;
 
  ※空欄には「スペース」を使用。

(3)しかし、これではスマートフォンで利用するアプリでうまく表示できなかったたため
  アプリの説明書を読んでみると●の部分へ「tabキー」で空欄を入れる必要があると判明。

       investigation●[名]調査する;

この「tabキー」での空欄を関数で表現する方法がわからないというわけです。
よろしくお願いします。

A 回答 (3件)

【要旨】


クエリ(SQL文)で使用する場合は、以下の式を使用すればOkです。

<現状(Spaceを使用)>
 [A] & " " & [B] & [C]

<変更後(Tabを使用)>
 [A] & Chr(9) & [B] & [C]

※Accessのテーブル上では、Tab記号は表示できませんが、データと
 しては格納されています。
 なお、テキストファイルへの出力時、『テキスト区切り記号』を使用
 すると、Tab記号はその区切りの中に入れられてしまいますので
 ご注意下さい。
 (「&」で結合する前の値をそれぞれ「"」で括る必要がある場合は、
  「Chr(34)」(=「"」)などを使用して追加して下さい)


【解説】
Chr関数は、指定した文字コードに対応する文字を返す関数です。
ただ、これには調べたい文字の文字コードが必要です。
各文字の文字コードを調べるには、Asc関数を使用します。
 例)半角スペースの文字コードを調べる場合:
   ?Asc(" ")
 (Ctrl+Gキーの同時押しで表示されるイミディエイトウィンドウに上記を
 入力してEnterキーを押せば、次の行に文字コードが表示されます)


但し、Tab記号のような「制御文字」の場合は、Asc関数の引数として
直接入力することができませんので、「VBAで定義された定数を使用」
するか、「ヘルプまたは下記サイトなどでコードを確認」します。

 例)Tab記号の文字コードを、VBAの定数を使用して調べる場合:
  ?Asc(vbTab)

ASCII文字コードの参考サイト(一例):
http://office.microsoft.com/ja-jp/word-help/HA01 …
(「ASCII 非印字制御文字」の項目を参照)
    • good
    • 0
この回答へのお礼

大変よくわかりました。ありがとうございます。早速やってみたところバッチリうまくいきました。ありがとうございました。

お礼日時:2013/01/12 11:44

「説明書」の解説から入ります。



> アプリの説明書を読んでみると●の部分へ「tabキー」で空欄を入れる必要があると判明。

つまり、「Tab区切りテキストファイルを用意しなさい」と言う意味です。
Tab区切りテキストファイルの詳細は別途お調べください。


さて、手順。

アクセスでやりたいなら、まずはクエリを作るのが手っ取り早いです。
テーブル名がわかりませんので、「テーブル」とします。
同様にフィールド名がわからないので、左から順に「英・日・記号」とします。
そうすると、こんなクエリ
  SELECT テーブル.英 AS Q1, [日] & [記] AS Q2 FROM テーブル;
ができます。
これをエクスポートしてやります。
順に、クエリを右クリック→エクスポート、ファイルの種類をテキストファイルにし、
適宜、名前をつけてエクスポートボタン。
区切り記号付きを選択し、次へ。
区切り記号に「タブ」を選択、テキスト区切り記号を「なし」に設定し、次へ。
ファイル名を確認し、OK。
以上で、Tab区切りテキストファイルが出来上がります。

どうしても関数を使って1フィールドにこだわるなら、
  investigation&Chr(9)&[名]調査 &";"
こうでしょうかね。
上手くいくかどうかは保証できませんが。


エクセルでやるならもう少し簡単です。
>          A             B        C
> 1行目  investigation      [名] 調査      ;
コレを、
         A             B        
1行目  investigation      [名] 調査;
こんな感じに加工し、名前をつけて保存。
ファイルの種類を「テキスト(タブ区切り)」に設定、名前を指定して保存。
これで、Tab区切りテキストファイルが出来ます。


わからない言葉が出てきたら調べる癖をつけないと時間ばかりかかりますよ。


ついでなので。
「 ; 」は「セミコロン」と言います。
「コロン」は「 : 」こちらですよ。
    • good
    • 0

accessで変換する意味が良くわからないのですが。


Excelで名前をつけて保存で TAB区切りではだめですか?

この回答への補足

>Excelで名前をつけて保存で TAB区切りではだめですか?

返信ありがとうございます。
「名前をつけて保存」「TAB区切り」というのが逆にわかりませんが、具体的にはExcelをテーブルにインポートした後、テーブルの英語部分に更新クエリで日本後と;をひとつにまとめる関数を以下のようにしました。

investigation&" "&[名]調査 &";"

上の『&" "&』の部分を『スペースキー1個分』ではなく『タブキー1個分』にしたいという意味です。

更新したテーブルにはいらいなくなった日本語と;が付いたままなので、Accessでテーブル作成クエリを用い英語部分(更新後)だけのテーブルを作成した後、マクロでテキスト形式にエクスポートしたこの一連作業のことを『変換』という単語で表現したつもりでした。

よろしくお願いします。

補足日時:2013/01/12 10:24
    • good
    • 0

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