Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9293 / 13646 ツリー ←次へ | 前へ→

【28180】シートのテキスト文での保存について Kou 05/8/30(火) 15:23 質問[未読]
【28194】Re:シートのテキスト文での保存について 通りすがり 05/8/30(火) 18:05 回答[未読]
【28209】Re:シートのテキスト文での保存について Kou 05/8/31(水) 8:36 お礼[未読]
【28211】Re:シートのテキスト文での保存について だるま 05/8/31(水) 9:49 回答[未読]
【28213】Re:シートのテキスト文での保存について Kou 05/8/31(水) 11:00 お礼[未読]

【28180】シートのテキスト文での保存について
質問  Kou  - 05/8/30(火) 15:23 -

引用なし
パスワード
   お世話になります。

エクセル97で、シートを丸々テキスト文で保存したいのですが、

ActiveWorkbook.SaveAs Filename:="テスト.txt", FileFormat:=xlTextPrinter, CreateBackup:=False

では、セル内の200字程度あるコメントの内、
初めの50字程度しか出来上がったテキスト文に反映されません。

FileFormat:=xlText

に変えると、200字程度のコメントが全部取れるのですが、
テキスト文にしたコメントの前後に「""」が付いてしまいます。

どなたかこう言った事のスマートな解決法をご教授お願いします。

【28194】Re:シートのテキスト文での保存について
回答  通りすがり  - 05/8/30(火) 18:05 -

引用なし
パスワード
   ▼Kou さん:
>お世話になります。
>
>エクセル97で、シートを丸々テキスト文で保存したいのですが、
>
>ActiveWorkbook.SaveAs Filename:="テスト.txt", FileFormat:=xlTextPrinter, CreateBackup:=False
>
>では、セル内の200字程度あるコメントの内、
>初めの50字程度しか出来上がったテキスト文に反映されません。
おためしください
ActiveWorkbook.SaveAs Filename:="テスト.txt", FileFormat:=xlCurrentPlatformText, CreateBackup:=False

【28209】Re:シートのテキスト文での保存について
お礼  Kou  - 05/8/31(水) 8:36 -

引用なし
パスワード
   >おためしください
>ActiveWorkbook.SaveAs Filename:="テスト.txt", FileFormat:=xlCurrentPlatformText, CreateBackup:=False


返信有難う御座います。

早速、試して見たのですが FileFormat:=xlCurrentPlatformTextでは、
FileFormat:=xlTextと同じようにテキスト文にした時に、
そのテキスト化したセルの初めと最後に「""」が付いてしまい
うまく処理出来ませんでした;;

【28211】Re:シートのテキスト文での保存について
回答  だるま WEB  - 05/8/31(水) 9:49 -

引用なし
パスワード
   >「""」が付いてしまい
これはたぶんセル内改行があるからでしょう。

下記コードをお試しください。^d^


Sub SaveTxt()
  Dim myColumn As Range
  Dim myCell As Range
  Dim myLastCell As Range
  Dim myRow As Range
  Dim Fname As String
  Dim N As Integer
  Dim i As Integer
  
  Set myColumn = ActiveSheet.UsedRange
  Set myColumn = myColumn.Columns(1)
  
  Fname = ThisWorkbook.Path & "\Test.txt"
  N = FreeFile(0)
  Open Fname For Output As #N
  
  For Each myCell In myColumn.Cells
    With myCell
      Set myLastCell = .EntireRow
      Set myLastCell = myLastCell.Cells(myLastCell.Cells.Count)
      Set myLastCell = myLastCell.End(xlToLeft)
      If myLastCell.Column < myCell.Column Then
        Set myRow = myCell
      Else
        Set myRow = .Worksheet.Range(myCell, myLastCell)
      End If
    End With
    
    With myRow
      Print #N, .Cells(1).Value;
      For i = 2 To .Cells.Count
        Print #N, vbTab; .Cells(i).Value;
      Next
      Print #N, ""
    End With
  Next
  
  Close #N
  
  Set myColumn = Nothing
  Set myCell = Nothing
  Set myLastCell = Nothing
  Set myRow = Nothing
  
End Sub

【28213】Re:シートのテキスト文での保存について
お礼  Kou  - 05/8/31(水) 11:00 -

引用なし
パスワード
   無事に問題が解決出来ました。
お二人の方、お教え頂き有難う御座いました。
助かりました。

改行コードは確かに付いておりました。

9293 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free