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

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も見ています

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

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

QEXCEL VBA ワークシートのコピーについて

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピー先BOOKに

         ワークシート名
ワークシート1 処理1ワークシート 
ワークシート2 処理2ワークシート
ワークシート3 処理3コピー元ワークシート3

という具合にワークシートを複数コピーしたいのですが

処理ごとにデータを代入し、コピー処理はできるのですが。

コピー先BOOK

ワークシート3 処理3ワークシート

だけしかコピーされてないBOOKが作成されます。
上書きされているのだと思われます。

対処法が調べましたが見つけられていません。

すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピ...続きを読む

Aベストアンサー

今どういうコードを書いているのか不明なので、とりあえず
「1つのシートを別のブックに複数回コピーする」ための参考ソースを書きます。
コピー元のブックに下記ソースを貼り付けて実行してもらえば
新規ブックにコピー元のシートが3枚コピーされると思います。
(新規ブックを追加しているのでシート数は3枚より多くなります)

Sub copySheet()
Dim masterWb As Workbook
Dim masterSh As Worksheet
Dim copyWb As Workbook

Set masterWb = ThisWorkbook
Set masterSh = masterWb.Sheets(1)
Set copyWb = Workbooks.Add

'ここからが実際のコピー処理です。
'単純に3回コピーメソッドを呼び出して3回コピーしています。
masterSh.Copy before:=copyWb.Sheets(1)
masterSh.Copy before:=copyWb.Sheets(1)
masterSh.Copy before:=copyWb.Sheets(1)

End Sub

今どういうコードを書いているのか不明なので、とりあえず
「1つのシートを別のブックに複数回コピーする」ための参考ソースを書きます。
コピー元のブックに下記ソースを貼り付けて実行してもらえば
新規ブックにコピー元のシートが3枚コピーされると思います。
(新規ブックを追加しているのでシート数は3枚より多くなります)

Sub copySheet()
Dim masterWb As Workbook
Dim masterSh As Worksheet
Dim copyWb As Workbook

Set masterWb = ThisWorkbook
Set masterSh = masterWb.Sheets(1)
Set copyWb = W...続きを読む

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)」(=「"...続きを読む

QEXCEL VBA ワークシートのコピーについて

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピー先BOOKに

         ワークシート名
ワークシート1 処理1ワークシート 
ワークシート2 処理2ワークシート
ワークシート3 処理3ワークシート

という具合にワークシートを複数コピーしたいのですが

処理ごとにデータを代入し、コピー処理はできるのですが。

コピー先BOOK

ワークシート3 処理3ワークシート

だけしかコピーされてないBOOKが作成されます。
上書きされているのだと思われます。

対処法が調べましたが見つけられていません。

すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

seaclearsky8です。

一つのブックに何枚ものワークシートを追加して保存するVBAについて
ご教授、よろしくお願いします。

コピー元 

MASTER Book MASTER Workseets

コピー先

Copy Book copy Worksheets


コピー元にはワークシートがMASTERワークシートの一枚しかありません。

その一枚のワークシートに値をVBAで入れていき処理し

コピー先のコピーBOOKにワークシートをコピーしていきたいです。

しかし、MASTERBOOKの処理が何通りかあり、

コピー元の一枚のワークシートに
処理別にデータを写し

コピ...続きを読む

Aベストアンサー

> 配列にワークシートのオブジェクトを入れることとか可能なのでしょうか?

それは多分できないと思います。


> 複数のセル・シートを何回もコピーする場合にでるらしいです。

多分、メモリをたくさん使っちゃってるせいでしょうね。
まず、メモリ使用を減らすようにしましょうか。

・testwriteの最後にオブジェクト変数のメモリ解放を行う。
 具体的には以下のように書く。もうやってたらすみません。
Set cbook = Nothing
Set mastersheet = Nothing
・testwriteの中でのブックオープンおよび保存をやめる。
 新規ブックのオープンをtestwriteを呼ぶ前に1度だけ行い、
 testwriteの中ではその新規ブックに対してシートを追加していく。
 そしてtestwriteの処理が全部終わったら、
 新規ブックの全シートを1度に「記録シートYYYY/MM/DD.xls」にコピーする。

それでも駄目でしたら、以下の回答No.1を試してみてください。
http://oshiete.goo.ne.jp/qa/1822561.html

> 配列にワークシートのオブジェクトを入れることとか可能なのでしょうか?

それは多分できないと思います。


> 複数のセル・シートを何回もコピーする場合にでるらしいです。

多分、メモリをたくさん使っちゃってるせいでしょうね。
まず、メモリ使用を減らすようにしましょうか。

・testwriteの最後にオブジェクト変数のメモリ解放を行う。
 具体的には以下のように書く。もうやってたらすみません。
Set cbook = Nothing
Set mastersheet = Nothing
・testwriteの中でのブックオープンおよび保存をやめ...続きを読む

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

QEXCELのVBAでシートコピーをしたとき元のマクロを削除するには?

VBAのマクロでシートのコピーをしたいのですが、元のシートにはVBAのコードが含まれています。コピーするのはデータだけのコピーが必要で、マクロ自体は必要ないのですが、それを削除するコードはどのように書いたらいいのでしょうか?
どうしてもコピーしたファイルを開くと「マクロが含まれています」という確認メッセージが出てしまうのですが、それもなくしたいのです。
シートにフォームのボタンが配置されている場合も同様に、そのボタン自体をなくした状態でコピーを行いたいのですが・・・。プログラムで行うのは不可能なのでしょうか?

Aベストアンサー

No2です。
サンプルコードを書いてみました。
「オリジナル」という名前のシートを別ブックとしてコピペ保存します。

Sub サンプル()
Dim sc As Integer
sc = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
ThisWorkbook.Sheets("オリジナル").Cells.Copy 'コピー
Workbooks.Add 'ブック追加
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlValues '値貼り付け
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlFormats '書式貼り付け
Sheets("Sheet1").Name = "コピー"
Application.CutCopyMode = False
Application.SheetsInNewWorkbook = sc
ActiveWorkbook.Close
ThisWorkbook.Activate
End Sub

No2です。
サンプルコードを書いてみました。
「オリジナル」という名前のシートを別ブックとしてコピペ保存します。

Sub サンプル()
Dim sc As Integer
sc = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
ThisWorkbook.Sheets("オリジナル").Cells.Copy 'コピー
Workbooks.Add 'ブック追加
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlValues '値貼り付け
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlFormats '書式貼り付け...続きを読む

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

QVBAのワークシートの追加とコピーなんですが。

VBAのワークシートの追加とコピーなんですが。


sheet1の原紙をすべてコピーして、

新しくワークシートを追加してそのシートに貼り付けるプログラムを

教えてください。

Aベストアンサー

With ActiveWorkbook
  aaa = .Sheets("Sheet1").Cells(9, 4).Value 'aaaは社員
  bbb = .Sheets("Sheet1").Cells(9, 5).Value 'bbbは4月
  .Sheets("Sheet1").Copy After:=.Sheets(.Sheets.Count)
End With
ActiveSheet.Name = aaa & bbb

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 を使われては?

QEXCEL2002で、ブック内のワークシートを他のブックに(VBA含む丸ごと)コピーして移す方法

 EXCEL2002で、ブック内のワークシートを他のブックに(VBA含む丸ごと)コピーして移す方法
 普通のやり方では、セルの数字、値だけで、通常は、中身の重要な"関数式"であったり、VBA等のプログラムまで、コピーされることは、ありませんので、そこまで、出来る方法を教えて下さい。

Aベストアンサー

コピー元のBookとコピー先Bookをどちらも開いて
Excel画面上に並べます(左右に並べる方が作業しやすいと思います)

Ctrlキーを押しながら、コピーしたいシートのタブ部分を
クリック長押しすると、+マークと▲マークが出てきます。
マークが出てきたら、新しいBookにドラッグ&ドロップ で
シートコピーが出来ます。

全く同じシートがコピーされ、マクロもコピーされます。

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を見た人がよく見るQ&A

人気Q&Aランキング