

以下のマクロは、.xlsxのブックの全シートを.csvとしてファイル出力するものです。
これを使用すると、値の一つ一つがダブルコーテーション(")で囲われてしまうのですが、ダブルコーテーションがつかないようにしたいです。
どのようにしたらよいか、分かる方はいらっしゃいますでしょうか。なお、LibreOfficeを使用しているため、Excelのマクロと違う点があるかもしれません。
--
REM ***** BASIC *****
Sub Sheets_To_CSV
sheets=ThisComponent.Sheets.createEnumeration()
sURL = ThisComponent.getURL()
oView = ThisComponent.getCurrentController()
while sheets.hasMoreElements()
sh=sheets.nextElement()
s=sh.getName()
if sh.IsVisible then
oView.setActiveSheet(sh)
scURL = CONVERTFROMURL(sURL)
stURL = Dir(sURL , 16)
StoreCSV LEFT(sURL , instr(scURL,stURL) + 6) & s &".csv"
endif
wend
End Sub
sub StoreCSV(sURL As String)
dim document as object
document = ThisComponent
dim args(1) as new com.sun.star.beans.PropertyValue
args(0).Name = "FilterName"
args(0).Value = "Text - txt - csv (StarCalc)"
args(1).Name = "FilterOptions"
args(1).Value = "44,34,76,1"
document.storeToURL(sURL,args)
end sub
A 回答 (6件)
- 最新から表示
- 回答順に表示

No.6
- 回答日時:
>ダブルコーテーションが入るとプログラムでの読み取りに問題が出るため、このような質問をしましたが、
>マクロではなくプログラム側での除去を考えたほうが良いような気がしてきました。
そのプログラムは何の言語で作成されているかはわかりませんが、あなたが自由に改造できるものなのでしょうか?
もし、そうであれば、そのほうがよいかと。
No.5
- 回答日時:
カンマ、改行、ダブルコ-テ-ションを含む文字列をセルで扱えなくなるから
わざわざ囲っているのです。
まともなCSVを読めないプログラムはさっさと捨てるか改良
しましょう。
No.4
- 回答日時:
ちょっと不思議に感じたのですが。
最初からのCSVにはついてない・今回のコードで作成されたものにはついている、と言う点から『一体何のソフトで確認されているのか?』ですね。
おおよそ予測できるのはテキストエディタで開いているとしか考えられませんでした。
ならばいっそ現在のコードでCSV変換した後にテキストエディタにGrep機能があるなら、それを用いて一括置換してしまうとか?
例として『サクラエディタ』での話ですが、
https://webzarashi.hatenablog.com/entry/sakura-g …
置換前:"
置換後:(何も入力しない)
ファイル:*.csv
フォルダ:(ファイルの保存先)
とかで。
存在させる意味は色々出てますが、実際に使用されている側が不要と言うのなら構わないのかな~と思いまして。
No.3
- 回答日時:
値の中にダブルクォーテーション、カンマなどが入る可能性はゼロなの?
可能性がゼロじゃなければ囲っておかないと下流で CSV 取り込むシステムが困るよ。
LibreOffice のプログラムはわからないのできちんと回答できませんが、テキストファイルとして1セルずつガリガリ出力していったら自由に何でもできそうですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
このQ&Aを見た人はこんなQ&Aも見ています
-
【VBA】ExcelマクロでCSVファイルに保存したデータが"で囲まれてしまう
Visual Basic(VBA)
-
カンマ区切りのCSVファイルから"を削除したい
その他(プログラミング・Web制作)
-
Excelでcsvやtxtで保存する時にダブルクォートが勝手に付く
Excel(エクセル)
-
-
4
エクセルで文字列をtxtファイルに変換すると"がつく
Excel(エクセル)
-
5
【ExcelVBA】各セルをダブルクォーテーションで括ってCSV保存したい
Visual Basic(VBA)
-
6
Excelの保存で "を付けないように保存できる?"
Excel(エクセル)
-
7
ダブルコーテーション付きでCSV出力
Visual Basic(VBA)
-
8
EXCEL→CSV保存時のダブルクォーテーションについて
Visual Basic(VBA)
-
9
エクセルの複数データーをダブルクォーテーションなしでコピー貼付けしたい。テキストエディタで使用
Microsoft ASP
-
10
access テキストボックスの値取得
Access(アクセス)
-
11
タブ区切りデータからダブルコーテーションを外したい
Excel(エクセル)
-
12
ACCESS で 項目名を出力せずにエクスポートしたい
その他(データベース)
-
13
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
14
各項目がダブルクォーテーションで囲まれたカンマ区切りのCSVを作る方法?
Excel(エクセル)
-
15
Access 1レコードずつcsvで出力したい
その他(データベース)
-
16
エクセルでCSVファイルとして保存時 マークの増加を防ぐ方法を教えてください"
Excel(エクセル)
-
17
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
18
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
19
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
20
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
バッチでCSVを処理する時、空の...
-
CSVファイルの項目行を削除...
-
Excelのマクロで困ってます
-
CSV形式での保存時に”文字列...
-
特定文字を入ってるCSVの特定の...
-
CSV出力して、MS/EXCELで開くと...
-
マクロから出力されるcsvのダブ...
-
エクセル形式のファイルの読み込み
-
csvファイル 項目数取得
-
csvファイルのデータの一部を取...
-
csvファイルを列数ごとに分割す...
-
VBAでcsvファイルを読み込んで...
-
【エクセルVBA】お願いします。...
-
csvファイルでの日付設定「yyyy...
-
VBAでCSVファイルのデータを集...
-
ADODBでSQL実行前にレコードセ...
-
COBOLでCSVをインプットにして...
-
データ解析ソフトRでのファイル...
-
エクセルのプロパティーでセキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
バッチでCSVを処理する時、空の...
-
【C#】パス名で無効な文字
-
csvファイル 項目数取得
-
マクロから出力されるcsvのダブ...
-
CSV形式での保存時に”文字列...
-
エクセルVBA 大容量CSVファイル...
-
csvファイルでの日付設定「yyyy...
-
【ExcelVBA】UTF-8の文字コード...
-
CSVファイルの項目行を削除...
-
【エクセルVBA】お願いします。...
-
csvファイルを列数ごとに分割す...
-
VBAでCSVファイルのインポート...
-
【エクセル マクロ】読み込ん...
-
エクセル形式のファイルの読み込み
-
巨大なCSVの加工(指定列のみの...
-
Windowsのバッチファイルについ...
-
COBOLでCSVをインプットにして...
-
CSV出力して、MS/EXCELで開くと...
-
CSV形式のファイルを読み込んで...
おすすめ情報
コメントありがとうございます。
CSVの本来のフォーマットは存じ上げないのですが、最初からCSVとして作成したファイルにはダブルコーテーションがつかないのに、xlsxで作成したものには変換後もついてきてしまうので、困っております。(なお、intやfloatのような数値のみのセルにはつかず、文字列にのみ付加されているようです)
>値の中にダブルクォーテーション、カンマなどが入る可能性はゼロなの?
CSVなのでカンマは入りますね。
ダブルクォーテーションは、自動で付加する部分の処理がなくせれば、と考えていました。
どうもありがとうございます。
>『一体何のソフトで確認されているのか?』
MacのDiffMergeという差分確認のソフトで確認しています。
テキストエディタを挟むと確かに消せますね。ただ、頻繁に行う作業なので、工程をなるべく減らせれば、と考えていました。
ダブルコーテーションが入るとプログラムでの読み取りに問題が出るため、このような質問をしましたが、マクロではなくプログラム側での除去を考えたほうが良いような気がしてきました。