No.4ベストアンサー
- 回答日時:
<Test.txt>
これはテストです。句点で改行させるコード用。果たして成功するかな。
↓
<Test2.txt>
これはテストです。
句点で改行させるコード用。
果たして成功するかな。
Test.txtをリードしANo1さんの回答に従って改行させTest2.txtに書き出すには4行程のコードを書く必要があります。(ただし、関数が存在すれば...)
Private Sub CommandButton1_Click()
Dim strText As String
strText = FileReadAll("d:\temp\test.txt")
strText = Replace(strText, "。", "。" & vbCrLf)
FileWrite "d:\temp\tset2.txt", strText
End Sub
※Excel2003で検証!
**********************************************************************
このコードが動作するには、
1、以下のFileRearAll関数、FileWrite関数を標準モジュールに追加して下さい。
2、参照設定にMicrosoft Scripting Runtime を追加して下さい。
Option Explicit
Public Function FileWrite(ByVal FileName As String, _
ByVal Text As String) As Boolean
On Error GoTo Err_FileWrite
Dim fso As FileSystemObject
Dim txs As TextStream
Set fso = New FileSystemObject
Set txs = fso.CreateTextFile(FileName, True)
txs.Write Text
FileWrite = True
Exit_FileWrite:
Exit Function
Err_FileWrite:
MsgBox Err.Description & "(FileWrite)", vbExclamation, " 関数エラーメッセージ"
Resume Exit_FileWrite
End Function
Public Function FileReadAll(ByVal FileName As String) As String
On Error GoTo Err_FileReadAll
Dim fso As FileSystemObject
Dim fil As File
Dim txs As TextStream
Set fso = New FileSystemObject
Set fil = fso.GetFile(FileName)
Set txs = fil.OpenAsTextStream(ForReading, TristateUseDefault)
FileReadAll = txs.ReadAll
Exit_FileReadAll:
Exit Function
Err_FileReadAll:
MsgBox Err.Description & "(FileReadAll)", vbExclamation, " 関数エラーメッセージ"
Resume Exit_FileReadAll
End Function
No.7
- 回答日時:
こんにちは。
テキストファイル操作を今から覚えるのであれば、 s_husky さんが使われて
いる FileSystemObject の方が良いのですが、昔ながらの Open、Get、Put
ステートメントを使った場合のサンプルとしてご紹介します。
一応 Excel VBA で書きましたが、VB であっても Application.GetOpenFilename
が CommonDialog コントロールに変わるだけで、多少の変更で動きます。
指定したテキストファイルと同一のフォルダに結果を書き出します。
Option Explicit
Sub Sample()
Dim strFilename As String
Dim strDir As String
Dim Buffer As String
Dim n As Long
Const cnsOUTPUT As String = "_Output.txt"
'テキストファイルの指定
strFilename = Application.GetOpenFilename("テキストファイル,*.txt")
If UCase$(strFilename) = "FALSE" Then
Exit Sub
Else
strDir = Left$(strFilename, InStrRev(strFilename, "\"))
End If
On Error GoTo ERROR_HANDLER
'バイナリとしてテキストを読み込み
n = FreeFile()
GetText = Space$(FileLen(strFilename))
Open strFilename For Binary As #n
Get #n, , Buffer
Close #n
'「句点」の全半角を統一
Buffer = Replace(Buffer, "。", "。")
'「句点」→「句点+改行コード+改行コード」に置換
Buffer = Replace(Buffer, "。", "。" & vbCrLf & vbCrLf)
'テキスト出力
n = FreeFile()
Open strDir & cnsOUTPUT For Binary As #n
Put #n, , Buffer
Close #n
Exit Sub
ERROR_HANDLER:
Close #n
MsgBox "Error(" & Err.Number & ")" & vbCrLf _
& Err.Description
End Sub
No.6
- 回答日時:
#5です。
>openのところで、「ファイルが見つかりません
私のコードをそのまま実行してませんか。自分のメモ帳で作ったファイル名に変えること。これをユーザーに指定させるようにも、コードかけますが。
とりあえずOpenの” ”の中を自分のケースに変え実行してみてください。その実行後text9.txtを開いてみてください。
この回答への補足
すいません。ファイル名間違えていました。次のステップに進みまして、If Mid(s, Len(s), 1) <> "。" Thenのところで、「プロシージャの呼び出し、または引数が不正です。(Error 5)」となりました。m(_"_)m
補足日時:2006/06/03 19:17No.5
- 回答日時:
#2です。
補足に対してコード
Sub testo1()
Open "text8.txt" For Input As #1
Open "text9.txt" For Output As #2
While Not EOF(1)
Line Input #1, s
st = 1: sn = ""
'---
If Mid(s, Len(s), 1) <> "。" Then
s = s & "。"
End If
'--
Do
p = InStr(st, s, "。")
sn = sn & Mid(s, st, p - st + 1) & vbCrLf & vbCrLf
st = p + 1
If p = Len(s) Then GoTo p1
Loop
'---
p1:
Print #2, Left(sn, Len(sn) - 2)
Wend
'---
Close #1
Close #2
End Sub
(例データ)text8.txt
そういう場合は、良く考えてください。即断し無いようにしましょう。急いでも良い知恵は出てきません。
ご回答ありがとうございます。ファイルはエクセルシート、ワードでも良いです。出力するまでのコードがあると嬉しいです。入力の部分も書かれていると嬉しいです。よろしくお願いします。
(結果)text9.txt
そういう場合は、良く考えてください。
即断し無いようにしましょう。
急いでも良い知恵は出てきません。
ご回答ありがとうございます。
ファイルはエクセルシート、ワードでも良いです。
出力するまでのコードがあると嬉しいです。
入力の部分も書かれていると嬉しいです。
よろしくお願いします。
openのところで、「ファイルが見つかりません。」というメッセージが出てしまいました。(^_^;) アドレス指定してもダメなのでしょうか?ありがとうございました。m(_"_)m
No.3
- 回答日時:
#2です。
#2の補足・お礼に関して。カテがVBであること、プログラムの質問であることから、入力
出力はわかる力がある方と仮定しましたが・・。
エクセルかワードで、ということだとVBAですね。VBから入る質問も出る事があるが。
またWordVBAは経験者が少ないようです。
エクセルなら、入力したシート、セルの状態を決めて(教えて)もらわないと、プログラムができません。エクセルVBAを触ったら判るでしょう。セル番地がコードの中に頻繁に出てくることを。
もう既にテキストは、エクセル・ワードなどに打ち込んであるのですか。
まだならメモ帳に打ち込んで、または貼り付けて、質問するのが、本質問の既に出ている、諸回答が生かせ易いのでは無いかと思います。
No.2
- 回答日時:
Sub testo1()
s = "そういう場合は、良く考えてください。即断し無いようにしましょう。急いでも良い知恵は出てきません。"
st = 1: sn = ""
Do
p = InStr(st, s, "。")
' MsgBox p
If p = 0 Then GoTo p1
sn = sn & Mid(s, st, p - st + 1) & vbCrLf & vbCrLf
st = p + 1
Loop
p1:
MsgBox sn
End Sub
をご参考に。
>テキストを
テキスト「ファイル」の状態ですか。
新しいテキストファイルをテキストファイルで出力するのですか。
まあそうだとしても、その辺は、判るでしょう。
この回答への補足
ご回答ありがとうございます。ファイルはエクセルシート、ワードでも良いです。出力するまでのコードがあると嬉しいです。入力の部分も書かれていると嬉しいです。よろしくお願いします。m(_"_)m
補足日時:2006/06/03 12:47ありがとうございます。メッセージボックスで表示していたのですね。早いですね。(^_^;) でも、コピーができないので、コピーできるものに出力できたらと思います。お願いします。m(_"_)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(メンタルヘルス) 発達障害や精神障害の方の文章 3 2023/05/19 17:23
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- 日本語 文章の書き方 3 2023/01/07 06:28
- PDF PDFで資料を編集したいです 2 2023/08/10 22:56
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Excel(エクセル) マクロの編集 5 2023/06/08 17:34
- 画像編集・動画編集・音楽編集 動画編集ソフト☆テキスト入れれるもを探しています。早く編集できる(できれば) 自分で探したのはCli 2 2022/12/18 17:06
- HTML・CSS HPに文章で改行はすべてBRタグとかで改行しなきゃだめなのですか?改行が活きたまま書く方法ないの? 1 2022/12/03 21:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELのVBAでEOFを誤認識
-
【VBA】テキストファイルを指定...
-
複数のテキストファイル内の複...
-
VBSを使用し、指定フォルダ内の...
-
Excelにて、フォルダ内のTextフ...
-
VBでのテキストファイルへ参照...
-
スペース区切りのテキストファ...
-
VBSで文字を比較して一致するセ...
-
同一フォルダにある複数のテキ...
-
テキストファイルの最終行を消...
-
アスキー、バイナリーの違い、...
-
ファイルのアクセス回数について
-
エクセルのプロパティーでセキ...
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
エクセルで複数のコメントのサ...
-
Windows10でコマンドプロンプト...
-
カンマ区切りのCSVファイルから...
-
frxファイルの役目
-
バッチファイル XCOPYで上書き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA】テキストファイルを指定...
-
同一フォルダにある複数のテキ...
-
Excelにて、フォルダ内のTextフ...
-
EXCELのVBAでEOFを誤認識
-
アスキー、バイナリーの違い、...
-
複数のテキストファイル内の複...
-
uwscでExcelに自動記入
-
スペース区切りのテキストファ...
-
VBScript(vbs)での行の取得につ...
-
VBSを使用し、指定フォルダ内の...
-
VBAでテキストファイルを最後ま...
-
テキストファイルの最終行を消...
-
Java バブルソート
-
unixのシェルスクリプトで特定...
-
コンボボックスのリストに、テ...
-
VBでのテキストファイルへ参照...
-
句点で改行
-
【VBA】テキストファイルの内容...
-
Visual Studioでボタンを押した...
-
VBでファイルの判定
おすすめ情報