プログラムの初心者です。
困ってます。お教え下さい。

VBA上の制御で、あるテキストファイルのデータをコピーして、
別のテキストファイルに貼り付けして、別保存したいのですが、
分かりません。

テキストファイルを開くだけでしたらできたのですが、
それからが・・・・
Call Shell("C:\WINNT\system32\notepad.exe c:\text1.txt")

すいません、お教え下さい。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

どのような処理を最終的にご希望かわかりませんが、


以前私が作ったマクロを紹介します。

http://wordvba.cocolog-nifty.com/blog/2009/06/po …

こちらのブログに掲載してあるのですが、フォルダ内の
全ての(複数の)ワード文書をひとつのワード文書に
コピペするマクロです。

ブログの説明にも記載していますが、プログラム文を
変更すれば、テキストファイルにも対応します。

もしかしたら参考になるかと思いました。
テンプレートをダウンロードすれば、コードはそのまま
読めますので、ご参考まで。

参考URL:http://wordvba.cocolog-nifty.com/blog/
    • good
    • 0

1~10のファイルを一つのファイルにしたいということですか?


であれば

関数として
Function AppendFile(InputFile as string,Fp as Integer) as Integer
dim Fp2 as Integer

Fp2 = freefile
OPEN InputFile for Input As fp2
Do While Not EOF(fp2)
Line Input #fp2, TextLine1
Print #fp, TextLine1
Loop

close fp2

End Function
を作成して

呼び出し側
sub Main()
dim Fp as Integer
dim rtn as integer

Fp = freefile
OPEN "最終ファイル" for Output As fp

rtn = AppendFile("file1.txt",fp)
rtn = AppendFile("file2.txt",fp)
rtn = AppendFile("file3.txt",fp)
rtn = AppendFile("file4.txt",fp)




close fp

end Sub
とするのかな

DOSのコマンドを呼び出しするなら
shell("COPY FILE1.TXT+FILE2.TXT+FILE3.TXT 結合ファイル名")
    • good
    • 0

vbaの関数であればOPEN文、PRINT文、WRITE文、INPUT文、LINE INPUT文


この程度を理解すれば対応できると思います。
ヘルプを調べてみればよいでしょう。

この回答への補足

ご指摘の通りしてみました。
しかし、この方法だと複数のテキストを一つに
まとめれないんですが、できるのでしょうか?

ちなみに、こんな感じで作ってみました。

Open "c:\text.txt" For Output As #2
Open "c:\text1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, TextLine1
Print #2, TextLine1
Loop
'
Close #1
Open "c:\text2.txt" For Output As #3
Do While Not EOF(2)
Line Input #3, TextLine2
Print #2, TextLine2
Loop
'
Close #2
Close #3

補足日時:2001/06/12 11:56
    • good
    • 0

何のVBAをお使いでしょうか?



単純に内容を別ファイルにするなら「COPY 元ファイル 新ファイル」で
コピーできそうに思います。

開いて内容を編集して、という場合は別処理が必要ですが
Excel、Word、ACCESSなど、利用可能なオブジェクトが異なります。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelファイルをAccessでtxtに変換する

ExcelファイルをAccessでテキスト形式に変換しようとしています。

テキスト形式に抽出した際に文字列と文字列の間に空欄を設けたいのですが、
この空欄の部分は「スペースキー」で作成したものと「tabキー」で作成したものと
微妙に異なっているようなので「tabキー」での空欄と同じ効果を持たせる方法を教えてください。

(参考例)
(1)Accsessに取り込むExcelは次のように準備しました。

         A             B        C
1行目  investigation      [名] 調査      ;
                              (コロン)

(2)これをAccessで関数を使ってひとつにし、テキスト形式にしたものがこちら。

      investigation [名]調査する;
 
  ※空欄には「スペース」を使用。

(3)しかし、これではスマートフォンで利用するアプリでうまく表示できなかったたため
  アプリの説明書を読んでみると●の部分へ「tabキー」で空欄を入れる必要があると判明。

       investigation●[名]調査する;

この「tabキー」での空欄を関数で表現する方法がわからないというわけです。
よろしくお願いします。

ExcelファイルをAccessでテキスト形式に変換しようとしています。

テキスト形式に抽出した際に文字列と文字列の間に空欄を設けたいのですが、
この空欄の部分は「スペースキー」で作成したものと「tabキー」で作成したものと
微妙に異なっているようなので「tabキー」での空欄と同じ効果を持たせる方法を教えてください。

(参考例)
(1)Accsessに取り込むExcelは次のように準備しました。

         A             B        C
1行目  investigation      [名] ...続きを読む

Aベストアンサー

【要旨】
クエリ(SQL文)で使用する場合は、以下の式を使用すればOkです。

<現状(Spaceを使用)>
 [A] & " " & [B] & [C]

<変更後(Tabを使用)>
 [A] & Chr(9) & [B] & [C]

※Accessのテーブル上では、Tab記号は表示できませんが、データと
 しては格納されています。
 なお、テキストファイルへの出力時、『テキスト区切り記号』を使用
 すると、Tab記号はその区切りの中に入れられてしまいますので
 ご注意下さい。
 (「&」で結合する前の値をそれぞれ「"」で括る必要がある場合は、
  「Chr(34)」(=「"」)などを使用して追加して下さい)


【解説】
Chr関数は、指定した文字コードに対応する文字を返す関数です。
ただ、これには調べたい文字の文字コードが必要です。
各文字の文字コードを調べるには、Asc関数を使用します。
 例)半角スペースの文字コードを調べる場合:
   ?Asc(" ")
 (Ctrl+Gキーの同時押しで表示されるイミディエイトウィンドウに上記を
 入力してEnterキーを押せば、次の行に文字コードが表示されます)


但し、Tab記号のような「制御文字」の場合は、Asc関数の引数として
直接入力することができませんので、「VBAで定義された定数を使用」
するか、「ヘルプまたは下記サイトなどでコードを確認」します。

 例)Tab記号の文字コードを、VBAの定数を使用して調べる場合:
  ?Asc(vbTab)

ASCII文字コードの参考サイト(一例):
http://office.microsoft.com/ja-jp/word-help/HA010167539.aspx
(「ASCII 非印字制御文字」の項目を参照)

【要旨】
クエリ(SQL文)で使用する場合は、以下の式を使用すればOkです。

<現状(Spaceを使用)>
 [A] & " " & [B] & [C]

<変更後(Tabを使用)>
 [A] & Chr(9) & [B] & [C]

※Accessのテーブル上では、Tab記号は表示できませんが、データと
 しては格納されています。
 なお、テキストファイルへの出力時、『テキスト区切り記号』を使用
 すると、Tab記号はその区切りの中に入れられてしまいますので
 ご注意下さい。
 (「&」で結合する前の値をそれぞれ「"」で括る必要がある場合は、
  「Chr(34)」(=「"...続きを読む

Qエクセルでテキストファイルからフォームのテキストボックスにテキスト挿入するマクロ

マクロでフォームのテキストボックスに直接テキストファイルからテキストを挿入したいのですが出来ますか?
opentextでエクセルシートに入れてからフォームにコピーすることはできたのですが、それだと重くなってしまうので直接取り込みたいんですがうまくいきません。
VBやJAVAのreadlineのようなものは使えないんでしょうか。

Aベストアンサー

>VBやJAVAのreadlineのようなものは使えないんでしょうか。

LineInput がありますよ。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_030.html
http://rd.search.goo.ne.jp/click?DEST=http%3A%2F%2Fofficetanaka.net%2Fexcel%2Fvba%2Fstatement%2FLineInput.htm&no=2

Q\_vti_pvt\service.lckが開けないため、書き込めません。

新旧二つのパソコンがLANでつないであります。

新:XP+officeXP(FRONTPAGEなし)
旧:98SE+office2000(FRONTPAGEあり)

これまで旧でweb作成をしていたのですが、旧の外付けだったHDを新に接続しました。

「MyWeb」もこのHDにあります。そこで、旧から新の外付けであるこのHDの「MyWeb」にあるwebを開こうとしたら、タイトルのようなエラーメッセージが出て開けません。

新の方からはこのwebは開けます。

また、LANによるファイルの共有は問題なく出来ます。

XP用のFRONTPAGEを購入せずに、旧でそのままweb作成をしたいのですが、このエラーを解決する方法はあるのでしょうか?

面倒なお尋ねで申し訳ありませんが、よろしくご教示下さい。

Aベストアンサー

以下のサイトが参考になればよいのですが・・・

参考URL:http://support.microsoft.com/kb/303255/ja

Qcopy C:\Documents and Settings\*.*が出来ない

C:\Documents and Settingsは通常のフォルダではないのですか? copy C:\Documents and Settings\*.* c:\が出来ません。
どの様に指定するのか教えてください。

Aベストアンサー

フォルダやファイル名の Path にスペースが含まれていると
そこで命令文の区切りとして解釈されてしまうのでダブルクォーテーションで
括って、copy "C:\Documents and Settings\*.*" c:\
では如何でしょう?

ただ、当方ではcopy C:\Documents and Settings直下には
ファイルが有りませんので、結局何もコピーできませんでしたけど・・
フォルダごとのコピーなら、Xcopy を使われては?

Qデータがあれば、別のテキストボックスの色がかわる

テキストボックス1にデータがあれば、テキストボックス2の背景色が赤になるコードを教えていただけませんか?
よろしくお願いします。

Aベストアンサー

こんばんは!

Private Sub TextBox1_Change()
If TextBox1 <> "" Then
TextBox2.BackColor = vbRed
Else
TextBox2.BackColor = vbWhite
End If
End Sub

こんな感じではどうでしょうか?m(_ _)m


このカテゴリの人気Q&Aランキング

おすすめ情報