
ご教授下さい。
エクセルでの行と列の最初とデータの入っている最後のデータを以下のようにしてテキストで
取得しようと考えています。
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL マクロ データが転記さ...
-
前の(左隣の)シートを連続参...
-
エクセルの複数シートの保護を...
-
エクセルで前のシートを連続参...
-
別シート参照のセルをシート毎...
-
エクセルで前シートを参照して...
-
Excel、同じフォルダ内のExcel...
-
エクセルでファイルを開いたと...
-
エクセル 計算式も入っていない...
-
エクセルでファイル保存時に複...
-
シートの保護のあとセルの列、...
-
シート1に列挙したNGワードを...
-
エクセルで毎回1枚目のシートを...
-
VBAでシートコピー後、シート名...
-
Excelで、リストから順番に値を...
-
EXCEL:同じセルへどんどん足し...
-
複数のピボットを同じフィルタ...
-
エクセルで、行ごとの並び替え...
-
Excel シートに画像が貼ってあ...
-
条件に応じて特定の行を非表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL マクロ データが転記さ...
-
ExcelのVBAで最終行の下にコピ...
-
VBAとLEFT関数
-
エクセルVBA 行と列の取得
-
特定のセルだけ結果がおかしい...
-
エクセルの複数シートの保護を...
-
前の(左隣の)シートを連続参...
-
別シート参照のセルをシート毎...
-
エクセルで前シートを参照して...
-
エクセルでファイルを開いたと...
-
特定のシートの削除を禁止した...
-
Excelで金銭出納帳。繰越残高を...
-
エクセル 計算式も入っていない...
-
Excel、同じフォルダ内のExcel...
-
Excel2007で、太字にした行のみ...
-
EXCEL:同じセルへどんどん足し...
-
VBAでシートコピー後、シート名...
-
複数シートの特定の位置に連番...
-
シートの保護のあとセルの列、...
-
Accessのスプレッドシートエク...
おすすめ情報