Excel VBA質問箱 IV

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

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


3604 / 76735 ←次へ | 前へ→

【78760】エクセルの指定セルをテキストデータに書き出したい
質問  かわかみまめお  - 17/1/16(月) 21:02 -

引用なし
パスワード
   お世話になっております。
かわかみまめおと申します。

1. 下記のようなエクセルファイル(A)があったとします。
      A    B      
 1   文字  文字(3行)  
  2   文字  文字(3行) 

2.選択した範囲の一番左上をファイル名として、テキストファイルに書き出すコードとして、WEBで調べていたら、下記のコードを書いてる方がいらっしゃいました。

======
Sub selection_save_txt()
'
'選択範囲の左上のセルの値をファイル名にして、選択範囲をTXTとして出力する
'保存先はカレントフォルダ
'

Dim i, j As Integer
Dim d, SaveD As String
Dim start_row, start_column, end_row, rows_count, columns_count, end_column As Long
Dim File_name As Variant

'範囲を調べる
  start_row = Selection.Row                '開始行
  start_column = Selection.Column             '開始列
  end_row = start_row + Selection.Rows.Count - 1     '終了行
  end_column = start_column + Selection.Columns.Count - 1 '終了列
  rows_count = Selection.Rows.Count            '範囲行数
  columns_count = Selection.Columns.Count         '範囲列数
  
'左上のセルの値をファイル名にする
  File_name = Cells(Selection.Row, Selection.Column).Value
   
   
'ファイルの読み込みと出力
  Open File_name & "_j.txt" For Output As #1
  
  For i = start_row To start_row + Selection.Rows.Count - 1
    For j = start_column To end_column
      d = Cells(i, j)
      SaveD = SaveD & d & vbTab   '1列ごとにTABコード追加
      'Debug.Print SaveD
    Next j
    SaveD = SaveD & vbCrLf       '1行ごとに改行を追加
  Next i
  
  Print #1, SaveD
  Close #1
End Sub

===================

3.ご教示頂きたいこと

(1)上記のFor 以下の記述において、
■SaveD = SaveD & d & vbTab 
■SaveD = SaveD & vbCrLf 
の構文(?)の意味がよくわかりませんでした。
(変数とセルとタブを&でつなげる?)

また、最後に、
■Print #1, SaveD
とありますが、printは記入することだと調べました。
ループして最後にprintするのでしょうか。1つのセルごとにprintする必要があるのではないのか、と思いました。

なぜ、これで、上手に動作するのか理解できませんでした。
どなたかご教示頂けないでしょうか。


(2)なお、B1のセルは、セル内での改行を利用しており、テキストファイルにおいても、行が分かれるようにしたいのですが、いかがすればよろしいでしょうか。

御教示どうぞよろしくお願いいたします。

0 hits

【78760】エクセルの指定セルをテキストデータに書き出したい かわかみまめお 17/1/16(月) 21:02 質問[未読]
【78761】Re:エクセルの指定セルをテキストデータに... γ 17/1/17(火) 7:29 発言[未読]
【78764】Re:エクセルの指定セルをテキストデータに... かわかみまめお 17/1/17(火) 19:18 発言[未読]
【78772】Re:エクセルの指定セルをテキストデータに... かわかみまめお 17/1/23(月) 1:10 質問[未読]
【78774】Re:エクセルの指定セルをテキストデータに... γ 17/1/23(月) 7:09 回答[未読]
【78791】Re:エクセルの指定セルをテキストデータに... γ 17/1/24(火) 7:09 回答[未読]
【78792】Re:エクセルの指定セルをテキストデータに... かわかみまめお 17/1/25(水) 0:56 お礼[未読]
【78762】Re:エクセルの指定セルをテキストデータに... β 17/1/17(火) 9:41 発言[未読]
【78763】Re:エクセルの指定セルをテキストデータに... β 17/1/17(火) 9:53 発言[未読]
【78765】Re:エクセルの指定セルをテキストデータに... かわかみまめお 17/1/17(火) 19:20 発言[未読]
【78773】Re:エクセルの指定セルをテキストデータに... かわかみまめお 17/1/23(月) 1:13 質問[未読]

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