Excel VBA質問箱 IV

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

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


4421 / 13644 ツリー ←次へ | 前へ→

【56740】ダブルクォーテーションについて ひろ 08/7/2(水) 21:59 質問[未読]
【56742】Re:ダブルクォーテーションについて kanabun 08/7/2(水) 22:43 発言[未読]
【56772】Re:ダブルクォーテーションについて ひろ 08/7/4(金) 0:53 お礼[未読]

【56740】ダブルクォーテーションについて
質問  ひろ  - 08/7/2(水) 21:59 -

引用なし
パスワード
   はじめまして。よろしくお願いします。
ダブルクォーテーションについて質問します。

セルにA列から1、2、3・・・と数値が入っているとして、csvデータで保存し
そのデータをノートパッドで開いた時に、"1","2","3",・・・となるように
しようと、以下のコードを作成しましたが、
ノートパッドで開いた時に"""1""","""2""","""3""",・・・となってしまいます。
Excelで開くと、"1","2","3",・・・となっているのですが・・・。

何かよい方法はありますでしょうか??
よろしくお願いします。

dim a,b,c as string

a = worksheets("Sheet1").cell(1,1)
worksheets("Sheet1").cell(1,1)= """" & a & """"
b = worksheets("Sheet1").cell(1,2)
worksheets("Sheet1").cell(1,2)= """" & b & """"
c = worksheets("Sheet1").cell(1,3)
worksheets("Sheet1").cell(1,3)= """" & c & """"

【56742】Re:ダブルクォーテーションについて
発言  kanabun  - 08/7/2(水) 22:43 -

引用なし
パスワード
   ▼ひろ さん:

>セルにA列から1、2、3・・・と数値が入っているとして、csvデータで保存し
>そのデータをノートパッドで開いた時に、"1","2","3",・・・となるように
>しようと、

こうすれば、
> "1","2","3",・・・となるように
出力はできます。

Sub Try1()
 Dim io As Integer
 Dim myFile As String
 Dim v, ss As String
 Dim i As Long, j As Long, jj As Long
 
 myFile = "D:\(Data)\NumberDBQ.csv"
 io = FreeFile()
 Open myFile For Output As io
 
 v = ActiveSheet.UsedRange.Value
 jj = UBound(v, 2)
 For i = 1 To UBound(v)
  For j = 1 To jj - 1
   Write #io, CStr(v(i, j));
  Next
  Write #io, CStr(v(i, jj))
 Next
 Close io
 MsgBox "出力しました", , myFile
  
End Sub

ただし、このCSVファイルを Excelのメニューで「ファイルを開く」すると、

> "1","2","3",・・・となっている

ようにはなりません。Excelは 自動で ダブルクォートを取り払い、中身が
数値ならば、数値としてセルに展開してしまうからです。

【56772】Re:ダブルクォーテーションについて
お礼  ひろ  - 08/7/4(金) 0:53 -

引用なし
パスワード
   kanabunさん。
ありがとうございました!
サンプルコードをちょこっと編集させて頂き、実データに適用できました!
ありがとうございます!

▼kanabun さん:
>▼ひろ さん:
>
>>セルにA列から1、2、3・・・と数値が入っているとして、csvデータで保存し
>>そのデータをノートパッドで開いた時に、"1","2","3",・・・となるように
>>しようと、
>
>こうすれば、
>> "1","2","3",・・・となるように
>出力はできます。
>
>Sub Try1()
> Dim io As Integer
> Dim myFile As String
> Dim v, ss As String
> Dim i As Long, j As Long, jj As Long
> 
> myFile = "D:\(Data)\NumberDBQ.csv"
> io = FreeFile()
> Open myFile For Output As io
> 
> v = ActiveSheet.UsedRange.Value
> jj = UBound(v, 2)
> For i = 1 To UBound(v)
>  For j = 1 To jj - 1
>   Write #io, CStr(v(i, j));
>  Next
>  Write #io, CStr(v(i, jj))
> Next
> Close io
> MsgBox "出力しました", , myFile
>  
>End Sub
>
>ただし、このCSVファイルを Excelのメニューで「ファイルを開く」すると、
>
>> "1","2","3",・・・となっている
>
>ようにはなりません。Excelは 自動で ダブルクォートを取り払い、中身が
>数値ならば、数値としてセルに展開してしまうからです。

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