- 締切済み
ファイル保存
Private Sub Command1_Click() intFileNo = FreeFile Open "sample_01.csv" For Output As #intFileNo Print #intFileNo, Text1.Text Close #intFileNo End Sub このプログラムではテキストボックスに表示されたcsvをファイル名sample_01.csvとして保存できるのですが、 これだとテキストボックスに表示されているのが何でもファイル名がsample_01.csvとなってしまいます>< こうではなくて、テキストボックスに表示されている、『○○○.csv』というのをそのままファイル名として保存したいのです。 sample_01.csvの部分をtext1.textにかえてやったらエラーがでてできませんでした・・・ どなたかご教授お願い致しますm(__)m
- みんなの回答 (4)
- 専門家の回答
みんなの回答
単なるバグでしょう! が、質問からは色々想像されて特定は困難です。 まず、ファイル名とデータを分けるといいです。 同時に、パス情報と拡張子も非入力で統一するといいです。 この場合のサンプルコードは次のようです。 当然に、2番目がお勧めです。 FileWrite関数を使えば、僅か1行で済みます。 isOK = FileWrite(strFileName, strText) <サンプル2題> Option Explicit Private Sub Command1_Click() Dim intFileNo As String intFileNo = FreeFile Open App.Path & "\ " & Text1 & ".csv" For Output As #intFileNo Print #intFileNo, "AAAAAAAAAAAA" Close #intFileNo End Sub Private Sub Command2_Click() Dim isOK As Boolean Dim strFileName As String Dim strText As String If Len(Me.Text1 & "") > 0 Then strFileName = App.Path & "\" & Me.Text1 & ".csv" strText = "AAAAAAAAAAAAAA" isOK = FileWrite(strFileName, strText) If isOK Then MsgBox strFileName & " を書き込みました。" End If End If End Sub ' ' Microsoft Scripting Runtime を参照設定で加える必要あり! ' 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
- otto0001otto
- ベストアンサー率25% (64/249)
text1にどういう文字をいれたのか? そのとき、どういうエラーがでるのか? 補足してください。
- ackapapa
- ベストアンサー率44% (8/18)
Private Sub Command1_Click() intFileNo = FreeFile Open App.Path & "\" & Text1.Text For Output As #intFileNo Print #intFileNo, Text1.Text Close #intFileNo End Sub No.1さんの場合フルパスじゃないとだめかもしれません ローカルでいいのなら上記の文でいけるかと "\" は ""\" かも 今手元にVB無いので・・・
- funaho
- ベストアンサー率58% (43/74)
これで、出来ますよ。 Private Sub Command1_Click() intFileNo = FreeFile Open Text1.Text For Output As #intFileNo Print #intFileNo, Text1.Text Close #intFileNo End Sub
お礼
質問にも書いたのですがそれだとエラーがでてパスがありませんということでできないんですよね><