エクセルのデータをタブ区切りで出力したいのですが、「ファイル名を付けて保存」から「ファイルの種類」をタブ区切りにして保存した場合、カンマが含まれるセルにダブルクォーテーション「””」が付与されてしまいます。
やりたいことは以下の3つになります。
1.タブ区切りで出力する
2.カンマが含まれていてもダブルクォーテーションで括らない
3.先頭2行(1行目と2行目)を削除
※1行目はタイトル行、2行目はサンプル行です。
1と2を満たすVBAはできたのですが、3を実現するために以下の
処理を加えたところ、正しくタブ区切りで出力されなくなってしまいました。
・アクティブシートをコピー
・1~2行目を削除
・コピーしたシートを削除
作成したVBAは以下になります。
ーーーーーーーここからーーーーーーーーーーーー
Option Explicit
Public Sub ChangeTSV()
Dim FileName As String
FileName = WriteTsvFile(ActiveSheet)
If FileName <> "" Then
MsgBox "タブ区切りテキストファイルが作成されました。" & vbCrLf & "[PATH]" & vbCrLf & FileName, vbInformation, "タブ区切りテキストファイル作成完了"
End If
End Sub
Private Function WriteTsvFile(TargetSheet As Worksheet) As String
On Error GoTo WriteTabTxtFileErr
Dim FileName As String
Dim LastRow As Long
Dim LastCol As Long
Dim レコード As String
Dim c As Variant
Dim i As Long
Dim FileNo As Integer
' アクティブシートをコピー
ActiveSheet.Copy After:=Worksheets("最後のシート名")
' 1~2行目を削除
Range("1:2").Delete
' ファイル名を作成
FileName = Application.ThisWorkbook.Path & "\" & TargetSheet.Name & "_" & Format(Now, "yyyymmdd-hhmmss") & ".txt"
FileNo = FreeFile()
' 最終行と最終列の取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
LastCol = Cells(1, Columns.Count).End(xlToLeft).Column
i = 1
Open FileName For Output As #FileNo
' アラートOFF
Application.DisplayAlerts = False
Do Until i > LastRow
For Each c In Cells(i, 1).Resize(, LastCol)
レコード = レコード & vbTab & c.Value
Next c
Print #FileNo, Mid$(レコード, 2)
レコード = ""
i = i + 1
Loop
Close #FileNo
' コピーしたシートを削除
ActiveSheet.Delete
' アラートON
Application.DisplayAlerts = True
WriteTsvFile = FileName
Exit Function
WriteTabTxtFileErr:
MsgBox "[WriteTabTxtFile]" & vbCrLf & TargetSheet.Name & vbCrLf & Err.Description, vbCritical, "Exception"
WriteTsvFile = ""
Exit Function
End Function
ーーーーーーーここまでーーーーーーーーーーーー
タイトル行およびサンプル行を削除してから処理を行っているため、
どこまでがデータが入るべき列なのか判断できずに空白列にタブが入らないのは当たり前なのですが、
これを回避する方法がまったくわからず困っております。
お知恵をお貸しください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
エクセルで文字列をtxtファイルに変換すると"がつく
Excel(エクセル)
-
Excelでcsvやtxtで保存する時にダブルクォートが勝手に付く
Excel(エクセル)
-
タブ区切りデータからダブルコーテーションを外したい
Excel(エクセル)
-
-
4
マクロから出力されるcsvのダブルコーテーションをなくしたい。
Visual Basic(VBA)
-
5
VB:Excelのデータを、区切りなしのtextファイルで出力したい
Visual Basic(VBA)
-
6
VBAでテキスト出力時のスペースについて
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
youtubeのサムネイルを縦4列配...
-
Safariで、「プライベート」の...
-
新しいタブと新しいウィンドウ...
-
Excel tab入力方法
-
Firefoxで設定を「前回のウィン...
-
QRコードで読み取って飛んだ先...
-
セルの値をグーグルで検索する...
-
ロータスノーツのメールの左上の絵
-
firefoxで新しいウィンドウで開...
-
NoEditorというソフトについて
-
acrobatで、タブに表示されるフ...
-
Android でタブを複製する方法...
-
QRコードで複数セルに一括入力...
-
Firefoxでリンク先を開くと必ず...
-
iPadでiCloud ドライブ内のファ...
-
firefoxで新しいタブを今開いて...
-
タブブラウザの負荷
-
筆ぐるめ、 住所録一覧表が出ない
-
Accessで独自メニューバーまた...
-
Excel でタブ(\\t)入力 は出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
youtubeのサムネイルを縦4列配...
-
Safariで、「プライベート」の...
-
新しいタブと新しいウィンドウ...
-
Excel tab入力方法
-
Android でタブを複製する方法...
-
QRコードで複数セルに一括入力...
-
Firefoxで設定を「前回のウィン...
-
firefoxで新しいウィンドウで開...
-
クロームのタブが勝手に閉じら...
-
セルの値をグーグルで検索する...
-
firefoxで新しいタブを今開いて...
-
パソコン バツを押すと全部消え...
-
ズームの自分パソコンの画面バレ
-
メモ帳のタブ幅を変更する方法
-
グーグルクロームで右クリック...
-
Accessで独自メニューバーまた...
-
Brave ブラウザについて
-
筆ぐるめ、 住所録一覧表が出ない
-
タブが500個以上あります。 そ...
-
acrobatで、タブに表示されるフ...
おすすめ情報