Excel VBA質問箱 IV

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

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


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

【4448】データを読み込んでテキストに出力 ユウキ 03/3/20(木) 14:29 質問
【4457】Re:データを読み込んでテキストに出力 ポンタ 03/3/20(木) 19:21 回答
【4458】Re:データを読み込んでテキストに出力 ユウキ 03/3/20(木) 20:34 質問
【4460】Re:データを読み込んでテキストに出力 ポンタ 03/3/20(木) 20:57 回答
【4469】Re:データを読み込んでテキストに出力 ユウキ 03/3/21(金) 10:26 お礼

【4448】データを読み込んでテキストに出力
質問  ユウキ  - 03/3/20(木) 14:29 -

引用なし
パスワード
   VBA初心者なのですが、シートにボタンを作り、そのボタンをクリックするとシート内のデータを1行ずつ読み込んで、習得するデータが終わればそれをテキストに(,区切)出力するマクロはどうすればいいのでしょうか?宜しくお願いします。

【4457】Re:データを読み込んでテキストに出力
回答  ポンタ  - 03/3/20(木) 19:21 -

引用なし
パスワード
   >(,区切)出力するマクロはどうすればいいのでしょうか?

カンマ区切り、つまりCSVファイルとして保存したいということですね。

CSVで検索すれば、いっぱい出てくると思います。

【4458】Re:データを読み込んでテキストに出力
質問  ユウキ  - 03/3/20(木) 20:34 -

引用なし
パスワード
   >カンマ区切り、つまりCSVファイルとして保存したいということですね。
>CSVで検索すれば、いっぱい出てくると思います。

回答ありがとうございます。
セルの間はカンマで区切るので拡張子は独自の拡張子に保存します。
A列〜J列にデータがあり6行目〜50行目まで取得します。
(後にデータの最終行まで取得するようにする)
このままだと、1行毎に1セルのデータしか取得できないので
A〜J列を配列もしくは各列の変数に保存してそれを1行ずつデータを読み込み
出力するようにしたいのですがどのようにすればいいのでしょうか?
デバックする時にどのデータを読み込んでいるのかを確認出来るようにしたいと思っています。

Sub test()
'変数定義
Dim int_Row As Integer  '行
Dim int_Col As Integer  '列

'データの処理
If FreeFile = 1 Then   'ファイルが開いていないとき開く
Open "test.laf" For Output As #1

For int_Row = 6 To 50
  For int_Col = 1 To 7
  Print #1, Cells(int_Row, int_Col)

  Next int_Col
Next int_Row


Close #1                ' ファイルを閉じます
End Sub

【4460】Re:データを読み込んでテキストに出力
回答  ポンタ  - 03/3/20(木) 20:57 -

引用なし
パスワード
   標準モジュールに貼り付けてお試しください。

Sub test()
  Dim Ws As Worksheet, Wb As Workbook
  Application.ScreenUpdating = False
  Set Ws = ActiveSheet
  Set Wb = Workbooks.Add
  Call Ws.Range("A6:J50").Copy(ActiveSheet.Range("A1"))
  Call Wb.SaveAs("test.laf", xlCSV)
  Call Wb.Close(False)
  Application.ScreenUpdating = True
End Sub

【4469】Re:データを読み込んでテキストに出力
お礼  ユウキ  - 03/3/21(金) 10:26 -

引用なし
パスワード
   無事に出力することが出来ました。
いろいろとありがとうございました。
またの時は宜しくお願いします。

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