Excel VBA質問箱 IV

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

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


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

【34323】txtファイルへの書き出し VBAビギナー 06/1/31(火) 16:43 質問[未読]
【34324】Re:txtファイルへの書き出し VBAビギナー 06/1/31(火) 16:53 発言[未読]
【34327】Re:txtファイルへの書き出し inoue 06/1/31(火) 18:33 発言[未読]
【34343】Re:txtファイルへの書き出し VBAビギナー 06/2/1(水) 0:31 質問[未読]
【34358】Re:txtファイルへの書き出し VBAビギナー 06/2/1(水) 10:24 質問[未読]
【34359】Re:txtファイルへの書き出し inoue 06/2/1(水) 10:36 発言[未読]
【34363】Re:txtファイルへの書き出し VBAビギナー 06/2/1(水) 11:15 質問[未読]
【34372】Re:txtファイルへの書き出し inoue 06/2/1(水) 12:47 発言[未読]

【34323】txtファイルへの書き出し
質問  VBAビギナー  - 06/1/31(火) 16:43 -

引用なし
パスワード
   これからファイルへの書き込みを勉強しようと思いましたのでまずはイメージからになりますがご教示おねがいします。
エクセルにはシートが2つあります。またファイルも2つあります。場所.txtと時間.txt

ファイル形式1:        
公園1
公園2
公園3
公園4
ファイル形式2:
1:00,2:00
3:00,4:00

シート1:
項番 場所
1   公園1
2   公園2
3   公園3
4   公園4

シート2:
開始  終了
1:00  2:00
3:00  4:00

のようになります。やりたいことはエクセル上のメニューにファイル保存というボタンをつくり押すことでプロシージャを呼び出します。
例としてエクセル上の公園3を公園砂場にしたらファイルの公園3の部分がかわり
また公園4の下に公園5を書いて保存すれば公園5がファイルにも反映されるといった
ものをつくりたいのですが、
フローとしては開始→シートに対応したパスを取得→ファイル存在チェック→ファイルが存在しないならば新規作成→ファイルオープン→セルの値を取得→ファイルへ書き込む(場所を決定することも必要)→ファイルを保存→ファイルを閉じる
の感じでよろしいのでしょうか?

【34324】Re:txtファイルへの書き出し
発言  VBAビギナー  - 06/1/31(火) 16:53 -

引用なし
パスワード
   すみません。追記です。
前条件としてブックオープン時に一度読み取り専用でファイルから配列にデータを格納し
それをエクセル上に貼り付けた状態となります。

【34327】Re:txtファイルへの書き出し
発言  inoue E-MAILWEB  - 06/1/31(火) 18:33 -

引用なし
パスワード
   >フローとしては開始→シートに対応したパスを取得→ファイル存在チェック→
>ファイルが存在しないならば新規作成→ファイルオープン→セルの値を取得→
>ファイルへ書き込む(場所を決定することも必要)→ファイルを保存→ファイルを閉じる
といろいろ書いてありますが、
このようなマクロを作るのにどこが分からないのですか?
「txtファイルへの書き出し」以外は分かりますか?

書き出し部分はこちらをどうぞ。
[テキストデータの書き出し]
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_040.html

【34343】Re:txtファイルへの書き出し
質問  VBAビギナー  - 06/2/1(水) 0:31 -

引用なし
パスワード
   サンプルで確認しました。
サンプルでは
ああ
ああ
ああ
とたてに保存されましたが、
エクセルのA列のものをテキストファイルに書き込む際に
一行のみでああ,ああ,  とCSV形式で保存する方法をしりたいのですが
どのようにしたらよいでしょうか?

【34358】Re:txtファイルへの書き出し
質問  VBAビギナー  - 06/2/1(水) 10:24 -

引用なし
パスワード
   書き込みの際にOpenTextFileとCreateTextFileには違いはありますか?

【34359】Re:txtファイルへの書き出し
発言  inoue E-MAILWEB  - 06/2/1(水) 10:36 -

引用なし
パスワード
   ▼VBAビギナー さん:
>書き込みの際にOpenTextFileとCreateTextFileには違いはありますか?
新規の書き込みなら正しく引数指定すれば同じだと思います。

CreateTextFileならoverwrite:=Trueにすれば、
既に存在していても新規に書き出します。
OpenTextFileの方は、iomode:=ForWritingとして、
create:=Trueを指定しておかないと存在しない時に新規作成ができません。

【34363】Re:txtファイルへの書き出し
質問  VBAビギナー  - 06/2/1(水) 11:15 -

引用なし
パスワード
   >CreateTextFileなら存在しない場合は新規作成でファイルが作成され
データを書き出す。存在していればファイルの中身を消去して
データを書き出す。

>OpenTextFileの方は、引数を指定していれば上記のように新規作成し
存在していれば中身は残し追加して書き出す
というものということでしょうか?

【34372】Re:txtファイルへの書き出し
発言  inoue E-MAILWEB  - 06/2/1(水) 12:47 -

引用なし
パスワード
   ▼VBAビギナー さん:
>>CreateTextFileなら存在しない場合は新規作成でファイルが作成され
>データを書き出す。存在していればファイルの中身を消去して
>データを書き出す。
overwrite:=Trueを指定すればです。

>>OpenTextFileの方は、引数を指定していれば上記のように新規作成し
>存在していれば中身は残し追加して書き出す
>というものということでしょうか?
「追加して書き出す」は
iomode:=ForAppending
です。
iomode:=ForWritingの場合はCreateTextFileと同じです。

これらはヘルプの請け売りですので、ご自分で調べられます。
http://www.microsoft.com/japan/msdn/scripting/default.asp
(OfficeのCDから「Script Editor」をインストールしても良いです)

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