こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL表示について

質問がとんちんかんになってすみません。

テキストファイルを自動で読み込んでEXCELのセルに表示したいのです。


123.txtの中身
A10,あいうえお
G6,かきくけこ
M30,さしすせそ



テキストの中のA10・G6・M30がセルに位置、その位置に「あいうえお」とか
「かきくけこ」・・・・・と表示したいのです。
お忙しいとは思いますがどうか宜しくお願い致します。

投稿日時 - 2012-10-18 20:15:32

QNo.7754888

困ってます

質問者が選んだベストアンサー

テキストファイルから読み込むコードを書いてみました。
#1さんのコードからどう変わったのか分かるように
#1さんのコードを流用させていただいています。
ちなみに当方エクセル2000です。

Sheet1シートが存在するエクセルに貼り付けるものとします。
テキストファイルは「C:\sample.txt」だとします。

※見やすいようにインデントを入れていますが、全角スペース
 なので注意してください。

Sub Auto_Open()

  Dim ws As Worksheet
  Dim intFF As Integer
  Dim buf As String
  Dim myArray() As String
  Dim str As String

  Set ws = Worksheets("Sheet1")

  intFF = FreeFile

  Open "C:\sample.txt" For Input As #intFF
    Do Until EOF(intFF)
      Line Input #intFF, buf
      myArray = Split(buf, ",")
      str = myArray(0)
      ws.Range(str) = myArray(1)
    Loop
  Close #intFF

End Sub

>#1様
すみません、コード流用させていただきましたm(_ _)m

投稿日時 - 2012-10-18 21:57:25

お礼

Set ws = Worksheets("Sheet1")        シートセット
intFF = FreeFile
Open "C:\sample.txt" For Input As #intFF  ファイル名代入オープン
Do Until EOF(intFF)             改行まで
Line Input #intFF, buf             読み込む
myArray = Split(buf, ",")           貼り付け
str = myArray(0)               空にする
ws.Range(str) = myArray(1)         ?
Loop
Close #intFF

ほんとに有り難う御座います。私には理解に苦しむ所ですが
助かりました。
もっと勉強します

投稿日時 - 2012-10-18 22:22:36

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

No.1です!

No.2さんへ!
>#1様
すみません、コード流用させていただきました

はまったく気にしないでください。!

さて、本題ですが・・・
>テキストファイルを自動で読み込んで・・・
とありますが、確かにウェブ上でも読み込む(インポートする)コードは色々紹介されていますが、

一番簡単なのはExcelからその「テキストファイル」を開く方法ではないでしょうか?

(1)Excelを立ち上げる
(2)メニュー → 「開く」 → 「ファイルの種類」で「テキストファイル」を選択し、ファイルを開く
(3)「テキストファイルウィザード」画面が出ると思いますが、そのまま「完了」を選択すると
カンマ込のデータが1列に表示されるはずです。
(元データの改行が1データずつ行われていない場合は、続けて表示されてしまいます)

※ ウィザードの 2/3 で「区切り文字」の「カンマ」を選択するとカンマで区切られて別列に表示されます。

この場合は今回のコードでは対応できません。

※ Excelにインポートした状態がどのようになっているか?によってコードが変わってきますので、
今回はこの程度でごめんなさいね。m(_ _)m

投稿日時 - 2012-10-18 22:19:17

お礼

色々すみません、有り難う御座います。
もっと勉強してがんばります。

投稿日時 - 2012-10-18 22:24:22

ANo.1

こんばんは!
今回は1列だけにデータがあり、カンマ以前がSheet2のセル番地・カンマ以降が表示させたいデータ!
というコトだとして・・・

やはりVBAになってしまいますが、一例です。
データはA列の1行目(A1セル)からあるとします。

画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i As Long, str As String, ws As Worksheet, myArray
Set ws = Worksheets("Sheet2")
On Error Resume Next
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If InStr(Cells(i, 1), ",") Then
myArray = Split(Cells(i, 1), ",")
str = myArray(0)
ws.Range(str) = myArray(1)
End If
Next i
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m

投稿日時 - 2012-10-18 20:36:14

お礼

有り難う御座います。
今回はテキストファイルを読み込んで
です、すみません。

投稿日時 - 2012-10-18 20:57:35

あなたにオススメの質問