[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロで一連の動きを行いたい』(よーじ)
A1セルにデスクトップにあるCSVファイルの名前が入力されています。
321.csvの場合は321と拡張子は省いています。
そこでマクロで以下の動作をしたいのですが・・・
1.sheet2にA1セルのCSVをコピーする。
2.次にsheet2のB5セルから入力されている一番右下のセルまでをコピーする。
3.Sheet3のA1セルに行/列の入れ替えで張り付ける。
4.Sheet3の1行目と2行目の間、B列とC列の間でウィンドウ枠の固定をする
5.Sheet3のD列の一番下のセルの下に2行目から入力されている一番下までの合計をSUM関数で求める
6.その計算式をAW列までコピーする
この一連の動作をマクロで行いたいです。
よろしくお願いいたします。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
まずは2.ですが
CSVにより列行がちがいますので、一番右下に入力されているセルまでを全部コピーしたいです。
B列より何列まで入力されているかはCSVにより違いますが、途中に空白セルはありません。
B5より下はB5、B6、B7セル以外はこちらも空白セルはありません。
例としてはB5セルからAk76セルまでを選択してコピーするイメージです。
この時の空白セルはB5、B6、B7セルでそれ以外は入力されています。
分かりづらくてすいません。
3.ですが、
2.でコピーしたのをsheet3のA1セルを選択して、行/列の入れ替えの貼り付けをしたいです。
よろしくお願いいたします。
(よーじ) 2022/08/17(水) 16:30
■1
>この一連の動作をマクロで行いたいです。
して、現状どこまで出来ているのですか?
何らかの着手したものがあるのであれば、それを提示して、何処で詰まっているのかを相談されると具体的なアドバイスが得られると思います。
なお、提示されている大半のことは【マクロの記録】を使ってコード化してみると必要な命令は調べることができるとおもいます。
■2
>1.sheet2にA1セルのCSVをコピーする。
発想が「csvファイルをブックとして開く」というところにあると思うのですが、そのcsvファイルはブックとして開いて問題がないのですか?
(もこな2) 2022/08/17(水) 17:01
Sub Sample() 'A1セルからファイル名(拡張子無し)を読み取る Dim FileName As String FileName = Range("A1").Value '「.csv」を付加 FileName = FileName & ".csv"
With Sheet2 '1.sheet2にA1セルのCSVをコピーする。 'デスクトップのフォルダパスを取得 Dim WSH As Object Dim FolderPath As String Set WSH = CreateObject("WScript.Shell") FolderPath = WSH.SpecialFolders("Desktop") & "\" Set WSH = Nothing
'ファイルの実在確認 If Dir(FolderPath & FileName) = "" Then Exit Sub
'CSVファイル読み込み With .QueryTables.Add(Connection:="text;" & FolderPath & FileName, Destination:=.Range("A1")) .TextFileCommaDelimiter = True .Refresh BackgroundQuery:=False .Delete End With
'2.次にsheet2のB5セルから入力されている一番右下のセルまでをコピーする。 Intersect(.UsedRange, .UsedRange.Offset(4, 1)).Copy End With
With Sheet3 '3.Sheet3のA1セルに行/列の入れ替えで張り付ける。 .Activate .Range("A1").PasteSpecial Transpose:=True Application.CutCopyMode = False
'4.Sheet3の1行目と2行目の間、B列とC列の間でウィンドウ枠の固定をする ActiveWindow.FreezePanes = False .Range("C2").Select ActiveWindow.FreezePanes = True
'5.Sheet3のD列の一番下のセルの下に2行目から入力されている一番下までの合計をSUM関数で求める '6.その計算式をAW列までコピーする .Range("D" & Rows.Count).End(xlUp).Offset(1).Resize(, 46).Value = "=SUM(R2C:R[-1]C)" End With End Sub
(下手の横好き) 2022/08/17(水) 17:09
■1
正直マクロには詳しくなくて3番4番ぐらいしかマクロの記録ではわかりません。
それ以外はどうしていいかわからないのが現状です。
■2
csvは開いても特に問題はありません。
常に色々なCSVファイルが送られてきますので・・・
一応別に保存はしてあります。
本当に分かりづらくてすいませんがよろしくお願いいたします。
(よーじ) 2022/08/17(水) 17:17
無事にできました。
ありがとうございました。
(よーじ) 2022/08/17(水) 18:09
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.