仕事で使うためのマクロを作成しているところです。
1.エクセルで作成したデータ(A列に何百行も入っています。1行目から最終行まで空白セルはありません)を上から20行コピー
2.メモ帳を起動して貼り付け
3.Cドライブの直下に『1.txt』として保存し、メモ帳を閉じる
4.1.でコピーした次の行から20行コピー
5.メモ帳を起動して貼り付け
6.Cドライブの直下に『2.txt』として保存
・・・と言うように繰り返していきたいのですがどうしたらいいのかわかりません。
色々調べると一つ一つの工程のマクロは見つけられるのですが、
理屈がわからない状態なので「こんな感じかな?」とそれぞれをつなげてもさっぱり動いてくれません。
どなたか上記の一連のマクロのやり方を教えては頂けないでしょうか?
また、できましたらどういう理由からそうなるのかも教えていただきたいと思います。
(仕事上、期限があるのでそう時間はないのですが、
勉強のためにその理屈から自力で作成したものと頂いた回答の答え合わせができたらなぁ。と考えております。)
わがままな要望で大変申し訳ありませんが、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
Sub Macro5()
Dim sht As Worksheet
Dim cnt, idx As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set sht = ActiveSheet
On Error GoTo end0
For idx = 1 To sht.Range("A65536").End(xlUp).Row Step 20
cnt = cnt + 1
ActiveSheet.Cells(idx, "A").Resize(20, 1).Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:="Z:\" & cnt & ".txt", _
FileFormat:=xlText, CreateBackup:=False
ActiveWorkbook.Close
Next idx
end0:
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
自作のマクロを掲載するならともかく、それをしないで注文ばかりされるのはいかがなものかと…
この回答への補足
アドバイスありがとうございます。
こういった場合、自作のマクロを掲載した方がいいのですね。
すみませんでした。
質問では「何百行」としていますが、とりあえずテスト的に60行のデータをメモ帳3つに保存させるために作ったマクロを掲載します。
貼り付けをエクセルの別のセルで試したところ正しくできたので、コピーまでは大丈夫なのだと思っています。
メモ帳も起動し保存まで行くのですが、起動するメモ帳は合計で3つでいいのになぜか9つ起動してしまします。
また、下の状態で実行したところ「2.txt」と「3.txt」の2つしか自動で保存されませんでした。
また、ファイル名と中身は昇順になるはずなのになっていませんでした。
(ファイル名が1つ保存されていないせいでしょうか。)
Private Sub Kjtxt()
Dim down, choice
down = Worksheets("Sheet1").Range("a" & Rows.Count).End(xlUp).Row
For choice = 1 To down Step 20
Worksheets("Sheet1").Range("a" & choice & ":" & "a" & choice + 19).Copy
Dim i As Integer
For i = 1 To 3
Dim kidou1
kidou1 = Shell("notepad.exe", 1)
AppActivate ("無題 - メモ帳")
CreateObject("wscript.shell").SendKeys "^v"
CreateObject("wscript.shell").SendKeys "%{f}{a}"
CreateObject("wscript.shell").SendKeys "c:\" & i & ".txt"
CreateObject("wscript.shell").SendKeys "%{S}"
CreateObject("wscript.shell").SendKeys "%{f}{x}"
Next
Next
End Sub
これからアドバイスしていただいたマクロを試してみようと思います。
よろしくお願いします。
No.2
- 回答日時:
この質問の課題は、質問者には荷が重過ぎるのだと思います。
(1)メモ帳を仲立ちにする方法はメモ帳がVBAのようなものが無いので、貼り付けたり名をつけて保存したりするのが難しい。初心者の思いつきの方法です。SendKeysというもので苦し紛れにできると思うが。
普通オフィス以外のソフトをプログラムで動かそうなんて超ベテラン(プロ)のやることです。
(2)テキストで保存し、そのテキストファイルを20行ずつ読んで、所定の名前をつけたテキストファイルとして書き出す。これを繰り返す。コード自体は簡単な方法もありますが、プログラムの訓練を受けていないと、これも難しいでしょう。
(3)エクセルの20行のセルの値を1行分ずつ読み出して、それの20行分を1つのテキストファイルに書き出すという方法もあります。
(2)では
A.シーケンシャルファイルを読むコード
B.書き出すコード
をWEBで見つけて勉強すること。
C.それに20行ごとに繰り返す制御
(3)では
A.セルの20行の値を読むコード
B。20行ごとの繰り返しする制御構造
C。付随してファイルのCloseやOpenの仕方
などを1つずつ勉強してから、質問すべきです。
この回答への補足
アドバイスありがとうございます。
確かに荷が重いです。。。が、「できません」とは言えないのです。
指示されている方法とは異なったやり方を選択するにしても、
結果は指示されているように出さないといけません。
仕事なので・・・
私が考えているのは(1)です。
指示されていることを素直に実行しようとすると(1)となり、その他の方法が見つけられないので。
頂いたアドバイスできになったのが(3)です。
こちらは(1)とは違うのでしょうか?
「書き出す」と言うことについてもう少し教えていただけないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Excel(エクセル) 【マクロ】PasteSpecialメソッドにて、コードが動かない理由が分かりません 2 2023/08/15 20:47
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて 重複したものがあれば行を削除するとい 1 2023/02/27 18:49
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBAでメモ帳にコピペをしたいのですが…
PowerPoint(パワーポイント)
-
ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存
Visual Basic(VBA)
-
エクセルVBA テキストに出力、名前を付けて保存
Excel(エクセル)
-
-
4
マクロでメモ帳に貼り付け
Word(ワード)
-
5
【Excel】特定セルの内容をテキストファイルに書き出したい
Excel(エクセル)
-
6
excelからメモ帳への貼り付け
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メモ帳のテキストがいつのまに...
-
Excel:任意の列だけCSV形式で...
-
「筆記用具」という言葉はノー...
-
教科書などに初めから書いてあ...
-
PrintScreenキーが効かなくなり...
-
VBAでメモ帳にコピペをしたいの...
-
Windows10で、拡張子が.pyのフ...
-
プロジェクタだと動画が映らない
-
元の状態に戻すことを何と言う...
-
メモ帳でタブ幅の設定はできる...
-
他者の手首切断の夢ってどうい...
-
日頃、感じる不便なものってあ...
-
ExcelVBAでスペースキー操作したい
-
書いたり消したりできるラミネ...
-
ACCESSで日付や単位を設定したい
-
初期化できません
-
CDやDVDに書くマジックペン
-
ヨドバシドットコムも置き配し...
-
フリクションペンで書いたもの...
-
職場でもらったメモ、付箋をそ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メモ帳のテキストがいつのまに...
-
「筆記用具」という言葉はノー...
-
Excel:任意の列だけCSV形式で...
-
教科書などに初めから書いてあ...
-
大学を平日一日休んで運転免許...
-
元の状態に戻すことを何と言う...
-
PrintScreenキーが効かなくなり...
-
小6でこの絵上手いですか? ア...
-
消しゴムがくっついて、跡が取...
-
Windows10で、拡張子が.pyのフ...
-
書いたり消したりできるラミネ...
-
ヨドバシドットコムも置き配し...
-
日頃、感じる不便なものってあ...
-
「覚書」、「メモ」、「備忘録...
-
プロジェクタだと動画が映らない
-
指を動かす人・・・。
-
VBAでメモ帳にコピペをしたいの...
-
くっついた消しゴムかすをとる...
-
CDやDVDに書くマジックペン
-
Wordで 文字の一部にモザイクを...
おすすめ情報