
ご教授下さい。
エクセルでの行と列の最初とデータの入っている最後のデータを以下のようにしてテキストで
取得しようと考えています。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim StrFN As String
StrFN = "パス.txt"
Dim i As Long, LngLoop As Long
Dim IntFlNo As Integer
Worksheets("sheet1").Activate
LngLoop = Range("a65536").End(xlUp).Row
IntFlNo = FreeFile
Open StrFN For Append As #IntFlNo
For i = 1 To LngLoop
Write #IntFlNo, Cells(i, 1), 'ログ出力範囲
Next i
Close #IntFlN
End Sub
どうやら列の指定がうまくいってないようです。
Cells(i, 1), 'ログ出力範囲の1をどのように指定すればいいでしょうか?
取得したい範囲については添付しました。
どうかよろしくお願いいたします。

No.2ベストアンサー
- 回答日時:
ん?
再掲:
>適切に応用するか、必要ならキチンと説明を添えてご相談を投稿し直して下さい。
もうちょっとはっきり言われないとお判りにならないようなので。
>「行と列の最初のデータからデータの入っている最後のデータまで」
だから「具体的に」どこにデータが入ってる「可能性がある」のか(=どこのセル範囲で「最初から最後まで」を拾いたいのか。一例を挙げれば1行目は含むのか含まないのかとか、他にも。)ご相談で適切に情報が提供されてないので、こんな具合に的外れの回答が寄せられてお互いの時間と手間を無駄にすると指摘してるんです。反省してください。
勝手に想像:
private sub Workbook_beforeClose(cancel as boolean)
’version 2
dim myFile as string
dim r as long, c as long
worksheets("Sheet1").select
myfile = "c:\test\test.txt"
open myfile for append as #1
with activesheet.usedrange
for r = .cells(1).row to .cells(.count).row
write #1, cells(r, iif(cells(r, 1) = "", cells(r, 1).end(xltoright).column, 1 )).value, cells(r, columns.count).end(xltoleft).value
next r
end with
close #1
end sub
#参考
補足として
>行と列の最初とデータの入っている最後のデータ
この書き振りから「生データがバラバラとセルに記入されている」と判断しましたが、実は数式とかが埋まってるシートだったりしたら、また違う事を考えなきゃいけません。
No.1
- 回答日時:
>エクセルでの行と列の最初とデータの入っている最後のデータを
「最初」がA列並びに1行目からと決まっているとして、「最後」は各行の右端を取ってくるだけです。
private sub Workbook_beforeClose(cancel as boolean)
dim myFile as string
dim r as long
worksheets("Sheet1").select
myfile = "c:\test\test.txt"
open myfile for append as #1
for r = 1 to cells(rows.count, "A").end(xlup).row
write #1, cells(r, 1).value, cells(r, columns.count).end(xltoleft).value
next r
close #1
end sub
画像に何か説明を書かれているようですが見えませんのでスルーします。適切に応用するか、必要ならキチンと説明を添えてご相談を投稿し直して下さい。
この回答への補足
お礼が遅くなってしまいました。申し訳ありませんでした。
質問通りの動作を確認しました。ありがとうございます。
ですが、申し訳ありません。
私の質問の仕方が悪かったようです。
私もここまでは作成できていました。
取得したい範囲は、行と列の最初とデータの入っている最後のデータではなく
「行と列の最初のデータからデータの入っている最後のデータまで」です。
御手数ですが、もう一度ご教授願えないでしょうか。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
Microsoft365、ページ設定がで...
-
大学のレポート A4で1枚レポー...
-
快活CLUBについて 私用で使う書...
-
Office2021を別のPCにインスト...
-
libreoffice calcで行を挿入し...
-
エクセルで特定のセルの値を別...
-
office2019 のoutlookは2025年1...
-
エクセル:一定間隔で平均値を...
-
Excel テーブル内の空白行の削除
-
マクロ自動コピペ 貼り付ける場...
-
Teams内でショートカットって貼...
-
別シートの年間行事表をカレン...
-
Microsoft Formsの「個人情報や...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルにリンクされるのをし...
-
【Excel VBA】PDFを作成して,...
-
パソコン画面の中の小さい画面...
-
outlookのメールが固まってしま...
-
マイクロソフト 一時使用コード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL マクロ データが転記さ...
-
ExcelのVBAで最終行の下にコピ...
-
VBA繰り返し ワイルドカード
-
sheet間での転記エラー
-
特定のセルだけ結果がおかしい...
-
エクセルの複数シートの保護を...
-
前の(左隣の)シートを連続参...
-
別シート参照のセルをシート毎...
-
エクセルで前シートを参照して...
-
Excel、同じフォルダ内のExcel...
-
特定のシートの削除を禁止した...
-
EXCEL:同じセルへどんどん足し...
-
エクセル 計算式も入っていない...
-
Excelで金銭出納帳。繰越残高を...
-
複数シートの特定の位置に連番...
-
エクセルでファイルを開いたと...
-
Excel2007で、太字にした行のみ...
-
シートの保護のあとセルの列、...
-
Accessのスプレッドシートエク...
-
VBAで条件によりフォントサイズ...
おすすめ情報