
前回の続きの部分になりますが,テキストファイルの指定行の書き出しの必要性が出てきまして,どのように変更したらよいのか分からないので質問させて頂きます。
現状では1行目~空行までという風になっており,こちらの書き出しはうまくいっております。
今回はこれを1行目を省き,2行目~空行までという風に変更したいと考えております。初心者なものでこのような変更に対応できず困っておりますので,どなたかご教示頂けると幸いです。また,コードは下記に記載いたしますが,可能であればどこにどのように記載すると良いのかまでご教示頂けると大変助かります。
Private Function set_sheet(ByVal book_no As Long, ByVal sheet_no As Long) As Boolean
Dim i As Long
Dim fname As String 'テキストファイル名(フルパス)
Dim fileNo As Long 'ファイル番号
Dim lno As Long '行番号
Dim text As String '読み込んだテキスト
Dim RE As Object '正規表現オブジェクト
Dim sname As String 'シート名
Set RE = CreateObject("VBScript.RegExp")
'1行が空白行か否かの判定用
RE.Pattern = "^\s*$"
RE.Global = True
set_sheet = False
'array_fileの何番目かを求める
i = (book_no - 1) * 100 + sheet_no - 1
'上限を超えているならFlaseで終了
If i > UBound(array_file) Then Exit Function
'テキストファイル名及びその拡張子を除いたものを取得
fname = TextFolder & "\" & array_file(i)
sname = array_file(i)
sname = Left(sname, Len(sname) - 4)
fileNo = FreeFile
Open fname For Input As #fileNo
'ファイル終端まで読み込む
lno = 0
Do Until EOF(fileNo)
'1行読み込み
Line Input #fileNo, text
lno = lno + 1
'空白行なら終了
If RE.test(text) = True Then Exit Do
'A列の該当行へ設定
owb.Worksheets(sheet_no).Cells(lno, "A").Value = text
Loop
Close #fileNo
'シート名を設定
owb.Worksheets(sheet_no).Name = sname
'正常終了
set_sheet = True
End Function
No.3ベストアンサー
- 回答日時:
前々回の回答者です。
下記にアップしました。
https://ideone.com/47bW0x
前回の質問
https://oshiete.goo.ne.jp/qa/12776079.html
も含めて、回答しています。
不明点は、補足してください。
この度は誠にありがとうございました。
おかげさまで手作業だとかなり時間のかかる作業が大幅に改善されました。
今後ともExcelを用いた業務も増えていきそうなので,まずは自身でコードを読み解けるように努めてまいります。
No.2
- 回答日時:
んー。
結局自分で理解することを放棄したという事でしょうか。'1行読み込み
および
'空白行なら終了
の箇所を修正するだけですよ。
残念ですが、ここは自力で問題解決できるようにアドバイスを受ける場所ですので、
前回のように丸っとコードを教えてくださることは滅多にありません。
もしも自力で問題解決することが目的ではなく、
とにかく希望通りの処理を済ませたいという事であれば、
有料サイトで依頼することを薦めます。
このくらいの物であれば500円もしない値段で作ってくださる人がたくさんいると思います。
(自分なら200円から300円くらいかな。今後も仕様変更が頻繁にあると予想してリピートを期待した値段であれば100円から200円にするかもしれません)
ご指摘ありがとうございます。
理解することをあきらめたわけではないのですが,この分だけが早急に必要になっておりまして,現在ネットとにらめっこしながら一つ一つの動作に関しての理解を深めるよう努めております。今後このような依頼となってしまう場合は有料サイトでの依頼も視野に入れつつご質問させて頂きます。
No.1
- 回答日時:
こんにちは
>前回の続きの部分になりますが~
前回を知りませんので、内容はわかりませんけれど・・
>今回はこれを1行目を省き,2行目~空行までという
>風に変更したいと考えております。
テキストファイルを1行ずつ読み込む方式のようなので、
・ループの外側で、最初に1行読み捨てる
・lnoが1だったら出力せず、出力先の行番号を lno-1 にする。
のどちらかにしておけばよさそうに思われます。
あるいは、そのまま出力が終わったところで、シートの1行目を削除するのでも良いかも。
こちらの方法であれば、何もいじる必要もなく「マクロの記録」でも作成できます。
ご回答ありがとうございます。イメージとしては仰っていることは理解できるのですが,初心者過ぎてそれをコードにおこすことが難しい状況です。。
可能であればどのような書き方をすればよいかまでご教示いただけませんか?
削除の方も書いてはみたのですが,コード的に別のブック上での操作になりまして,そちらのブックをActiveにする際に必要なブック名が複雑な式になっており,そちらを参照することができず,別の手法を模索しておりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【初月無料キャンペーン実施中】オンライン健康相談gooドクター
24時間365日いつでも医師に健康相談できる!詳しくはコチラ>>
-
シート名をセルの値にするマクロについての質問
Visual Basic(VBA)
-
vba 環境依存文字がListViewボックスに設定すると化ける
Visual Basic(VBA)
-
エクセルって複雑な処理は避けた方が良くないですか?
Excel(エクセル)
-
4
excel2021で実行できないマクロ。どこを直したらいいのか
Visual Basic(VBA)
-
5
【Excel VBA】セルの色によって書き込み禁止などの処理は可能?
Visual Basic(VBA)
-
6
VBAでtxtファイルを読み込む際にtabを認識したい
Visual Basic(VBA)
-
7
マクロ作成で困っています。お教え頂けませんか。
Excel(エクセル)
-
8
VBAで、オートフィルタで非表示になっている行の高さを取得したい
Visual Basic(VBA)
-
9
ハイパーリンクを値貼り付け
Excel(エクセル)
-
10
対象フォルダの選択画面を出したい
Visual Basic(VBA)
-
11
WordはそれなりにできるけどExcelが苦手すぎて全くできない人の対処法
Excel(エクセル)
-
12
VBAの記述方法について教えていただけると幸いです。
Visual Basic(VBA)
-
13
VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか?
Visual Basic(VBA)
-
14
Vba 電卓のテキストボックスに上下に分かれた分数の表示方法
Visual Basic(VBA)
-
15
複数のcsvをVBAでマージする方法をご教示ください!
Visual Basic(VBA)
-
16
エクセルについて vlookup関数で表にない数字を打つとエラーになる関数教えて
Excel(エクセル)
-
17
Excel教えてほしいです。
Excel(エクセル)
-
18
VBAの質問です msg = ws.Cells(r, A").Value & "日に" & ws."
Visual Basic(VBA)
-
19
揮発性関数の語源・由来は何ですか?
Excel(エクセル)
-
20
シフト表作っていたのですが、早番、昼、夜で区切っていて早番と昼の人数をカウントさせるにはどうしたら良
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
VBAで新しい日付順にファイルを...
-
5
VBAで任意のフォルダ内のファイ...
-
6
access vbaでCSVファイルを文...
-
7
BCPユーティリティの使用法_...
-
8
VB6側からテキストファイルをク...
-
9
ソースコードの差分がある行番...
-
10
複数行の文字列を変数として使...
-
11
テキストファイルの行頭に文字...
-
12
A列をテキストファイル名に、B...
-
13
バッチでiniファイルの編集
-
14
iniファイルとの比較(iniファイ...
-
15
TIFFファイルを開く
-
16
日付順にテキストを開いて書き...
-
17
テキストファイルを直接置換す...
-
18
フォルダ比較の結果をテキスト...
-
19
C#でのファイル編集と上書き保...
-
20
大量のフォルダからひとつのフ...
おすすめ情報
公式facebook
公式twitter