DOSプロンプトからエクセルを実行してテキストデータを
読み込ませたいのですがそういう事はできないのでしょうか。
ちなみにエクセルデータの場合は C:>excel ***.xls で
読み込むようですが。テキストデータの場合はできないの
でしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

DOSプロンプトから起動する事は可能です。



ただし、Microsoft Officeのインストールまでのパスを指定して、さらに実行ファイル名を指定しないと動きません。
例:インストール先が
c:\program files\Microsoft Office\だった場合
c:\progra~1\Micros~1\等
なぜ、上記のように~1になってしまうかといいますと
MS-DOS時代は8+3(ファイル名8+拡張子3)の形式だったんですね。それで、Windows98のCommand.comはFAT32形式(ロングファイルネームを言いたい)に対応していますので(でないと起動しないんですけどね(^-^;)
たとえば、実行ファイル名がwwwgoonejp.exeの場合は
wwwgoome~1.exeとして解釈されます。

それによってなんとか、ロングファイルネームに対抗しています(^-^;

という事で、実行時には2点の注意点があります。
1:パスをちゃんと指定してあげる
2:短縮ファイル名(wwwgoone~1.exe等)である
という2点を注意すれば、DOSプロンプトでもばりばり起動できます。

オチを言ってしまえば、MS-DOS Onlyモードで起動すると
Excelは起動しません(^-^;
それは、Win32のカーネルが動いていないからです(^-^;

テキストデータは一応、Excelは対応していますので読み込みは可能だと思います。
読み込み後、どういう解釈をExcelがするのかはわかりませんが・・・(^-^;
    • good
    • 0

ご自身で書いている、



excel readme.txt

などでDOS窓からなら開けると思いますが。
但し、excel.exeには標準ではパスが通っていないはずなので

C:\WINDOWS> excel readme.txt[enter]

では駄目だと思います。
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

QエクセルVBA テキスト読み込み(区切り文字で読み込み)  サンプルプログラムの改良をしてください。

通常、エクセルでテキストファイルを読み込もうとすると、ウイザードが立ち上がりそれを終えると読み込めます。
私はこのウイザードで、「カンマやタブなどの区切り文字で…」を選択し、次へ。次の画面で「タブ」と「スペース」にチェックを入れます。なお、スペースにチェックを入れると、自動的に「連続した区切り文字は1文字として扱う」にチェックが入ります。
そして次へ→、完了としてテキストを読み込んでいます。

このたび、この操作が面倒なので、マクロで実行しようといろいろ調べていたら、自分のやりたいことと一番近いサンプルマクロを見つけました。以下です。
http://www.bekkoame.ne.jp/~poetlabo/COMP/Excel/VBASAMP/IMP_TXT.TXT

このマクロをそのまま書いて実行すると、区切り文字を指定でき、読み込めます。
ただし、このままだと区切り文字を1つしか指定できません。
先ほど書いたように、今回は「スペース」「タブ」で区切って開きたいのですが、上記のサンプルプログラムをどう改変すればよいのでしょうか?

通常、エクセルでテキストファイルを読み込もうとすると、ウイザードが立ち上がりそれを終えると読み込めます。
私はこのウイザードで、「カンマやタブなどの区切り文字で…」を選択し、次へ。次の画面で「タブ」と「スペース」にチェックを入れます。なお、スペースにチェックを入れると、自動的に「連続した区切り文字は1文字として扱う」にチェックが入ります。
そして次へ→、完了としてテキストを読み込んでいます。

このたび、この操作が面倒なので、マクロで実行しようといろいろ調べていたら、自分のや...続きを読む

Aベストアンサー

こんにちは。

別に元のコード自体を評価するというような気持ちではありませんが、このコードは、シーケンシャルファイル用(拡張子は、.dat)にも適用できるマクロです。それで、問題は発生はしないけれども、全体的に、インポートは遅いはずです。

それと、誰もご指摘にならないようですが、元のサンプルのコードは、Excel97 用です。

Excel2000以上なら、テキストラインで、このようなことは必要ないはずです。
Call ReadLine(CurTxt, DeLimiter, rn)

Split 関数で十分なはずです。ただし、デリミタは、一つに限るので、その前に、Replace 関数で、置換しておく必要があります。

今風の書き方ではないし、プロシージャが分散しすぎて読みにくいように思います。新たに、書き直したほうがよい様な気もしてくるのですが。

記録マクロに関して、

>どうも思うのと違うため、今のところ保留にしています。
>「読み込み」と「開く」は違うみたいで、手動でやっているのと同じ結果にはなるのですが、新しいファイルが開いて、そこにテキストファイルが開かれたり…。

それは、インポートの方法が違っているからです。これは、VBAのオブジェクトで言えば、QueryTable といいますが、ワークシートでは、[外部データの取り込み]のことを指します。オプション自体は、複雑なこともありますので、記録マクロを利用するのが一番です。なお、Tab と Comma 共存の場合は、QueryTable が優れています。

VBA入門レベルでも、記録マクロと組み合わせれば可能かと思います。というか、よほど、インポート間で加工しなければ、このまま使えると思います。

例:

Sub TestMacro1()
  Dim Fname As Variant
  On Error Resume Next
  ActiveSheet.QueryTables(1).Delete 'QueryTableがあったら削除
  On Error GoTo 0
  Fname = Application.GetOpenFilename( _
  "テキストファイル (*.txt; *.csv),*.txt;*.csv", 1, "OpenTextFile")
  If VarType(Fname) = vbBoolean Then Exit Sub
'-------------------細かいオプションは、記録マクロから取り出してください。---
  With ActiveSheet.QueryTables.Add( _
    Connection:="TEXT;" & Fname, _
    Destination:=Cells(1, 1))
    .AdjustColumnWidth = False '列幅の自動調整
    .TextFileCommaDelimiter = True 'カンマ切り
    .Refresh BackgroundQuery:=False 'バックグラウンドの再入力(一回きり)
    .TextFileTabDelimiter = True 'タブデリミタあり
  End With
'-------------------
  ActiveSheet.QueryTables(1).Delete
End Sub
  

こんにちは。

別に元のコード自体を評価するというような気持ちではありませんが、このコードは、シーケンシャルファイル用(拡張子は、.dat)にも適用できるマクロです。それで、問題は発生はしないけれども、全体的に、インポートは遅いはずです。

それと、誰もご指摘にならないようですが、元のサンプルのコードは、Excel97 用です。

Excel2000以上なら、テキストラインで、このようなことは必要ないはずです。
Call ReadLine(CurTxt, DeLimiter, rn)

Split 関数で十分なはずです。ただし、デリミ...続きを読む

QエクセルVBA:テキストデータ(txt)の読込(改行が変なところでされる)

勉強しながら、エクセルVBAを組んでみたのですが
うまくいきません。

テキストデータを以下のようなプログラムで読んだのですが
(100行のデータを縦に並ぶように100個のセルの書き出す)
読み込みデータに「↓」で改行されているところでは
「↓」の間は同一行と見なされてしまうのですが
どのようにしたら一行で一つのデータと見てくれるのでしょうか?

分かる方がいましたら教えて下さい。
よろしくお願いします。



Sub pon()
'*** 変数の宣言 ***
Dim filenum As String
Dim i As Integer
Dim num As Integer, ms As String, cnt As Integer
Dim BookName As String, PathName As String
Dim ca As String

cnt = 1
i = 1

ca = Cells(1, 56)

PathName = "C:\"
textpath = Dir(PathName & "pon" & ca & ".txt")

BookName = Dir(PathName & "pon" & ca & ".txt")

Open PathName & BookName For Input As #1 'ファイルを開きます

Do While Not EOF(1)
Line Input #1, ms
cnt = cnt + 1
Cells(1, 57) = BookName 'データの書き出し

Cells(cnt, 56) = ms 'データの書き出し

Loop
Close #1

End Sub

勉強しながら、エクセルVBAを組んでみたのですが
うまくいきません。

テキストデータを以下のようなプログラムで読んだのですが
(100行のデータを縦に並ぶように100個のセルの書き出す)
読み込みデータに「↓」で改行されているところでは
「↓」の間は同一行と見なされてしまうのですが
どのようにしたら一行で一つのデータと見てくれるのでしょうか?

分かる方がいましたら教えて下さい。
よろしくお願いします。



Sub pon()
'*** 変数の宣言 ***
Dim filenum As String
Dim i As Integer
...続きを読む

Aベストアンサー

FileSystemObjectを使って入力すれば、改行コードに悩まされることなく同じようにプログラムできます。
Public Sub pon()
Dim objFs, file, filename, BookName
Dim cnt
Dim ca, ms

Set objFs = CreateObject("Scripting.FileSystemObject")

ca = Cells(1, 56)
filename = "C:\pon" & ca &".txt"
BookName = dir(filename)
Set file = objFs.OpenTextFile(filename, 1) 'read Only

Cells(1, 57) = BookName 'データの書き出し
cnt = 1
Do Until file.AtEndOfStream
ms = file.ReadLine
cnt = cnt + 1
Cells(cnt, 56) = ms 'データの書き出し
Loop
file.Close
End Sub

FileSystemObjectを使って入力すれば、改行コードに悩まされることなく同じようにプログラムできます。
Public Sub pon()
Dim objFs, file, filename, BookName
Dim cnt
Dim ca, ms

Set objFs = CreateObject("Scripting.FileSystemObject")

ca = Cells(1, 56)
filename = "C:\pon" & ca &".txt"
BookName = dir(filename)
Set file = objFs.OpenTextFile(filename, 1) 'read Only

Cells(1, 57) = BookName 'データの書き出し
cnt = 1
Do Until file.AtEndOfStream
ms = file.ReadLine
...続きを読む

QXLSファイルをCSVファイルに変換してエクセルで読み込ませたい

こんにちは。シグマリオン1の連絡先に入力していたファイルをポケットエクセルにコピーしてPxlcsvファイル(Pxlファイル?)で保存しました。それを、XLSファイルに変換して、ノートパソコンにコピーしました。そのXLSファイルをCSVファイルにしてエクセル又は、Outlookで読み込ませたいのですが、どうしたらいいのでしょうか?教えて下さい。宜しくお願いします。

Aベストアンサー

>XLSファイルをCSVファイルにして
これだけなら
(1)XLSファイルをエクセルでひらき
(2)名前をつけて保存で「ファイルの種類」を「CSV」で保存

Qリッチテキストを Excel は読み込めないの?

Excel 2003 の表を作るために、データを txt 形式にして、データをカンマで区切って、以下のように列挙したのをエクセルの外部から読み取りで変換するとちゃんとできました。
しかし、メモ帳を使ってまったく同じように編集し、(もちろん単純なテキストです。フォントや書式データはまったく入れていません)今度は「リッチテキスト」形式で保存をしたら、それはMicrosoft Word で開けるファイルになっていましたが、それを Excel で外部から読みとりで変換すると、先ほどの「シンプルテキスト」とは違ってレイアウトも乱れ、数字以外はめちゃくちゃな変換(文字化け)になっていました。
これは何が原因なのでしょうか?リッチテキストの情報を Excel は読み込めないってことですか?

ひろし,4,33,0,32
たかし,5,23,5,54

Aベストアンサー

1.外部から読みとりで変換すると
ちょつと意味が不明ですが・・・。
2.リッチテキストの情報を Excel は読み込めないってことですか
読み込みますが、Excelでは適切に処理できない情報が含まれているので、文字化けのようになります。
3.単純なテキスト
「リッチテキスト」形式は、単純なテキストファイルではありません。
フォントや文字の色を指定しなくても、そこに書かれている文字情報などが含まれています。
4.メモ帳を使ってまったく・・・「リッチテキスト」形式で保存
MSのメモ帳では、リッチテキストファイルはできません。ワードパッドの間違いでは・・・。
5.文字化け
メモ帳を使って保存したのなら、単純なテキストファイルなので、Excelで読めますが、メモ帳で保存するときの文字コードの選択が適切ではないと、Excelで開いたとき文字化けになることがあります。

Qテキストをエクセルに読み込みたい。

エクセル2000を使っている初心者です。
12.3
45.6
78.9



縦に10万行の、数字が入ったテキストファイ

ルが有ります。この数字を加工するためにエクセルへ

A列に3000行 B列に3000行・・・と区切りながら、

セルに納めたいのです、早くて簡単な方法を教えて

いただけないでしょうか。(テキストファイルの段階

で並び替えが必要なら、その方法をお願いします。)

Aベストアンサー

エクセルの6万5千余りの行数制限が、まずネックだと思います。
>縦に10万行の、数字が入ったテキストファイルが有ります。
この意味について、データの項目(12.3、45.6など各々を1項目として)がどう言う状態でテキストファイルになっているかによります。
たとえば、12,13,23,34,54、改行
25,234,45,46,21改行
と言う風に10万の数値があるのならレコード数は20、000ですから、そのCSVファイル等をエクセルに読み込めることが出来て、データ-区切り位置・・で5列の各セルに分離できますから簡単です。
●もし12改行、13改行、・・・のようなデータの持ち方がしてあるなら、レコード数は100,000で
(A)エクセルに10万データ全部一度に読めないですから、従ってエクセル関数も使えません。
もしテキストエディタで、10万行読みこめる優秀なものをお持ちでしたら、1-50,000前半を残し、後半を抹消し名前をつけて保存。今度は前半を抹消し、50、001-100、000を別名で保存。
これでエクセルへ読みこめる状態になります。
(B)そう言うエディタがお持ちでないなら、VBAで下記を利用します。
●50、000行のデータを3000行ずつx17列にするのは関数で出来ます。
簡単のため、A1:A100にデータがあるサンプルで10行ずつ10列にする例で説明します。
B1に式=OFFSET($A$1,(COLUMN(B1)-1)*10+ROW()-1,0)
といれB10まで複写します。その後B1:B10を範囲指定してJ列まで引っ張り複写します。
10を3000に変えれば、3000行ごとになります。
●VBAでは標準モジュールに貼りつけて実行。
Sub test01()
Open "c:\my documents\a14.csv" For Input As #1
i = 1
j = 1
p01:
If EOF(1) Then GoTo e01
Input #1, s
If i > 3000 Then
j = j + 1
i = 1
End If
Cells(i, j) = s
i = i + 1
GoTo p01
'----
e01:
Close #1
End Sub
a14.csvの部分は自分のケースでのテキストファイル名に変えてください。

エクセルの6万5千余りの行数制限が、まずネックだと思います。
>縦に10万行の、数字が入ったテキストファイルが有ります。
この意味について、データの項目(12.3、45.6など各々を1項目として)がどう言う状態でテキストファイルになっているかによります。
たとえば、12,13,23,34,54、改行
25,234,45,46,21改行
と言う風に10万の数値があるのならレコード数は20、000ですから、そのCSVファイル等をエクセルに読み込めることが出来て、データ-区切り位...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報