• 締切済み

ファイル保存

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

みんなの回答

noname#22222
noname#22222
回答No.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

回答No.3

text1にどういう文字をいれたのか? そのとき、どういうエラーがでるのか? 補足してください。

  • ackapapa
  • ベストアンサー率44% (8/18)
回答No.2

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)
回答No.1

これで、出来ますよ。 Private Sub Command1_Click() intFileNo = FreeFile Open Text1.Text For Output As #intFileNo Print #intFileNo, Text1.Text Close #intFileNo End Sub

lark198220
質問者

お礼

質問にも書いたのですがそれだとエラーがでてパスがありませんということでできないんですよね><