
マクロでCSVファイルを取込むプログラムを作成しております。
最終行を取得するソースまではできたのですが、最終列を取得する処理ができておりません。
教えて頂けないでしょうか。
処理概要
(1)ボタンを押したら、Sheet2にCSVファイルがインポートされる
(2)Sheet2に出力されたA2行~A8行とA2行~A8行の最終列までをSheet1のD4行~D10行、D4行~D10行の列にコピー
(3)Sheet2に出力されたA9行目はコピーしない
(4)Sheet2に出力されたA10行以降とA10行以降の最終列までをSheet1のA13行以降の最終列までにコピー
現在のソースは(2)、(4)の最終列を取得するソース以外はできています。
(2)、(4)の最終列を取得し、コピーする方法を教えて下さい。
現在のソースです。
Sub READ_TextFile()
Dim LoadFileName As String
Dim LR As Long
'選んだcsvファイルをSheet1に読み込む
LoadFileName = Application.GetOpenFilename("CSVファイル(*.csv),*.csv", 1, "読み込むcsvファイルを選んで下さい", False)
If LoadFileName = "False" Then Exit Sub
Workbooks.Open LoadFileName
Cells.Copy ThisWorkbook.Sheets("Sheet2").Range("A1")
ActiveWorkbook.Close False
'Sheet2のA2:A8をSheet1のD4を先頭セルとする範囲にCopy
Worksheets("Sheet2").Range("A2:A8").Copy Worksheets("Sheet1").Range("D4")
'Sheet2のA列のデータのある最終行を取得しLRという変数に入れる
LR = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
'Sheet2のA10からA列の最終行までをSheet1のA13を先頭セルとする範囲にCopy
Worksheets("Sheet2").Range("A10:A" & LR).Copy Worksheets("Sheet1").Range("A13")
End Sub
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
2:8行の最終セルと10行以降の最終セルをきっちりと分けて判定する必要がある場合は
Sub test()
Dim r As Range
Dim rr As Range
With Worksheets("Sheet2")
Set r = .Rows("2:8").Cells
'2:8行間の最終列のセルを取得
Set r = r.Find(What:="*", _
After:=r(1), _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchByte:=False)
If Not r Is Nothing Then
If r.Column >= .Columns.Count - 3 Then
MsgBox "error"
Else
Set r = .Range("A2:A8").Resize(, r.Column)
MsgBox r.Address
End If
End If
'10行以降のデータ範囲を取得
Set r = Intersect(.Rows("10:" & .Rows.Count), .UsedRange)
If Not r Is Nothing Then
'念のためA10起点でSetし直し
Set r = .Range("A10", r.Cells(r.Count))
'10行以降のデータ範囲内の最終列のセルを取得
Set rr = r.Find(What:="*", _
After:=r(1), _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchByte:=False)
Set r = r.Columns(1).Resize(, rr.Column)
MsgBox r.Address
End If
End With
End Sub
..こんな感じになりますが
アバウトで構わなければ
Sub test2()
Dim r As Range
With Worksheets("Sheet2")
Set r = .UsedRange.SpecialCells(xlCellTypeLastCell)
MsgBox .Range("A2:A8").Resize(, r.Column).Address
If r.Row > 9 Then
MsgBox .Range("A10", r).Address
End If
End With
End Sub
..これで良い場合もあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
高校生はアルバイトするべきだろうか?
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
スタッフと宿泊客が全員斜め上を行くホテルのレビュー
スタッフも宿泊客も、一流を通り越して全員斜め上なホテルのレビューにありがちな内容を教えて下さい
-
あなたが好きな本屋さんを教えてください
どのくらいの規模間で、どのような本が並んでいるか、どのような雰囲気なのかなどなど...
-
Csvファイルの最終行を取得する構文はこれであっていますか?オブジェクトは、このプロパティまたはメソ
Visual Basic(VBA)
-
VBAコード記述に際して、コード全体を自動的にインデント付ける方法
Access(アクセス)
-
csvファイル 項目数取得
Visual Basic(VBA)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
VBA 何かしら文字が入っていたら
-
B列の最終行までA列をオート...
-
【Excel VBA】 B列に特定の文字...
-
IIF関数の使い方
-
Excelで、あるセルの値に応じて...
-
特定の列全体を選択or検索パネ...
-
複数の列の値を結合して別の列...
-
文字列の結合を空白行まで実行
-
GridViewの行の入れ替えについて
-
【VBA】複数行あるカンマ区切り...
-
【VBA】2つのシートの値を比較...
-
VBA初心者です 検索した数字の...
-
Cellsのかっこの中はどっちが行...
-
グリッドの列の最大値を求めたい。
-
rowsとcolsの意味
-
Excel VBA 他組み合わせと比較...
-
ExcelVBAで配列2つを結合させ...
-
Excelの列に入っている値を全て...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
B列の最終行までA列をオート...
-
Excelで、あるセルの値に応じて...
-
Cellsのかっこの中はどっちが行...
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
VBAのFind関数で結合セルを検索...
-
IIF関数の使い方
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
【VBA】2つのシートの値を比較...
-
Changeイベントでの複数セルの...
-
VBAで指定範囲内の空白セルを左...
-
【Excel VBA】 B列に特定の文字...
-
データグリッドビューの一番最...
-
VBAで、特定の文字より後を削除...
-
文字列の結合を空白行まで実行
-
VBAを使って検索したセルをコピ...
-
二つのリストを比べて部分一致...
-
マクロについて。S列の途中から...
-
マクロ 最終列をコピーして最終...
おすすめ情報