![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
FarEyesです。> 全角ではなくて半角です
#1で記載したサンプルマクロは、試していただけたのでしょうか?
サンプルを見ていただければ解ると思いますが、区切り文字が半角の場合でも
対応できるように、以下のように記述してあります。
==================================================
:
'区切り文字の設定
'※区切り文字を半角文字にする場合は、下記「@1」の行の方を
' 有効にして下さい。
strSep = "’,’" '全角文字の場合
'@1 strSep = "','" '半角文字の場合
:
==================================================
区切り文字を半角にしたい場合は、上記の「全角文字の場合」のコード(1行分)
を削除し、@1の行、「半角文字の場合」の1行を生かす('@1の3文字を削除)よう
にすれば対処可能かと思います。
以上です。
No.2
- 回答日時:
#1です。
すみません。画像が添付できませんでした。
(画像ファイルのファイル形式は条件を満たしていると思うのですが、
エンコードで失敗してしまうようです。)
申し訳ありませんでした。
No.1
- 回答日時:
こんにちは。
ひとつ確認なのですが、
保存するテキストファイルの形式は、
あ,い,う,え,お
のCSV形式ではなく、
あ’,’い’,’う’,’え’,’お’,’
※’,’は、全て全角文字?(※半角文字の','ではない?)
※ご質問の例をコピペすると ’,’は、全て全角文字だったので
そう解釈させて戴きました。
ということでしょうか?
CSV形式なら、Excelのファイル保存時に、
「名前を付けて保存」
↓
「ファイルの種類」で「CSV (カンマ区切り) (*.csv)」を選択
として、ファイル保存すればできるのですが。。。
CSV形式ではなく、ご提示の
あ’,’い’,’う’,’え’,’お’,’
※’,’は、全て全角文字とする。
の形式で、アクティブなシート全体(データのある行まで)をテキストファイル
に保存するマクロ(サンプル)を作成してみました。
※当方は、Excel2000で作成&試してみました。
※他のバージョンのExcelで上手く動作しなかった場合はすみません。
※また、ご要望のものと違った場合はすみません。
■サンプルマクロ
※下記マクロは「標準モジュール」に貼り付けて下さい。
注)インデント等のため全角スペースを入れています。
=====================
Option Explicit
'
'== テキストファイル保存 ==
'※アクティブなシート全体をテキストファイルに保存します。
Sub TextSave()
Dim nCol As Long 'カラム位置
Dim nTextNo As Integer 'ファイル番号
Dim nRowEnd As Long 'データ最終行
Dim nColEnd As Long 'データ最終カラム(1行単位)
Dim strBkPath As String '本Excelブックのフォルダ名
Dim strTxtFn As String 'テキストファイル名(フルパス)
Dim strSep As String '区切り文字
Dim shCur As Worksheet 'Worksheetオブジェクト
Dim rgCur As Range 'Rangeオブジェクト
'アクティブシートのオブジェクト取得
Set shCur = ActiveSheet
'テキストファイルのフルパス名を作成
'※フォルダはこのExcelブックがあるフォルダとします。
strBkPath = ThisWorkbook.Path
strTxtFn = strBkPath & "\" & "Test.txt"
'区切り文字の設定
'※区切り文字を半角文字にする場合は、下記「@1」の行の方を
' 有効にして下さい。
strSep = "’,’" '全角文字の場合
'@1 strSep = "','" '半角文字の場合
'使用可能なファイル番号を取得
nTextNo = FreeFile
'テキストファイルをオープン(新規作成)
Open strTxtFn For Output Access Write As #nTextNo
'データがセットされている最後のセルの行位置を取得
nRowEnd = shCur.Range("A1").SpecialCells(xlCellTypeLastCell).Row
'1行目からデータ最終行までのA列のセルを取得(ループ処理)
For Each rgCur In shCur.Range("A1:A" & nRowEnd)
'現在行のデータがある最後のカラム位置を取得
nColEnd = rgCur(1, shCur.Columns.Count).End(xlToLeft).Column
'現在行の1カラム目からデータ最終カラムまでループ
For nCol = 1 To nColEnd
'「空白行」か「データがある行」かの判定
If nColEnd = 1 And rgCur(1, 1).Text = "" Then
'データ最終カラムが1カラム目かつ空白セルの時(=空白行)
'※空白行の場合は空き文字を出力
'※ここでは「区切り文字」は付加しない
'※区切り文字を出力する場合は下記「@2」の行の方を有効に
' して下さい。
Print #nTextNo, ""; '区切り文字を出力しない
'@2 Print #nTextNo, ""; strSep; '区切り文字を出力する
Else
'空白行ではない時(=データがある行)
'※セルデータ+区切り文字の出力
Print #nTextNo, rgCur(1, nCol).Text; strSep;
End If
Next nCol
'行末の改行を出力
Print #nTextNo,
Next
'テキストファイルをクローズ
Close #nTextNo
'シートオブジェクトの解放
Set shCur = Nothing
End Sub
=====================
■上記マクロの出力結果
<Exce側のシート例>
=====================
A B C D E F
1 あ い う え お
2 か き く
3 (空白行)
4 た ち つ て と
5 な に ぬ ね の
6 は ひ ふ へ ほ
7 ま み む め も
8 や ゆ よ
9 ら り る れ ろ
10 わ
11 ん
12 (空白行)
13 123 456 999
14 ABC DEF GHI MNO
15
16 End ←ここが最終データの
セル(F16)です。
=====================
※添付画像に上記のシート画面を添付しています。
保存するExcel側のシートが上記だった場合、出力されるテキストファイルは、
下記のようになります。
<テキストファイルの出力例>
=====================
あ’,’い’,’う’,’え’,’お’,’
か’,’き’,’く’,’
た’,’ち’,’つ’,’て’,’と’,’
な’,’に’,’ぬ’,’ね’,’の’,’
は’,’ひ’,’ふ’,’へ’,’ほ’,’
ま’,’み’,’む’,’め’,’も’,’
や’,’’,’ゆ’,’’,’よ’,’
ら’,’り’,’る’,’れ’,’ろ’,’
わ’,’
ん’,’
’,’123’,’456’,’’,’999’,’
ABC’,’DEF’,’GHI’,’’,’MNO’,’
’,’’,’’,’’,’’,’End’,’
=====================
以上です。参考になれば幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2023/01/20 14:36
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/04 10:48
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/03/31 12:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/10/03 09:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
EXCELからCSVにすると余計なカ...
-
エクセルで数値を全角文字(カ...
-
CSVの定義
-
「カンマ」と「コンマ」は同じ...
-
カンマ区切りの数字をCSVフ...
-
何故、日本は未だに数字を3桁...
-
3桁ごと?4桁ごと?コンマの...
-
Delphi 文字列の中のタブをコン...
-
エクセルで電話番号を取り出す...
-
データにカンマが入ったCSVデー...
-
PHP カンマをエスケープしたい...
-
WORDで改ページすると時々グレ...
-
テキストに’の入っているデータ...
-
(エクセル)特定のスペースを...
-
ひとつの命令を複数行に記述
-
電話番号の正規表現
-
[ASP+CSV]カンマ区切りを分解し...
-
桁区切りについて
-
WSHでエクセルのあるシートをテ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
データにカンマが入ったCSVデー...
-
EXCELからCSVにすると余計なカ...
-
エクセルで数値を全角文字(カ...
-
マクロを使ってフォルダー内に...
-
カンマ区切りの数字をCSVフ...
-
WORDで改ページすると時々グレ...
-
CSVの定義
-
[VBA][Excel]クリップボードか...
-
カンマ区切り
-
ひとつの命令を複数行に記述
-
「カンマ」と「コンマ」は同じ...
-
VBAでtxtファイルを読み込む際...
-
何故、日本は未だに数字を3桁...
-
エクセルの区切り位置の設定方法
-
PHP カンマをエスケープしたい...
-
C#で、テキストボックスの入力...
-
海外のケータイ(GSM携帯)はハ...
-
3桁ごと?4桁ごと?コンマの...
-
openoffice calcで#DIV/0! の...
おすすめ情報