
マクロを実行して
マクロブックがある、同じフォルダ内のテキストファイルを開く事が出来るマクロを作成しましたが、
上手く実行出来ません、
解決方法を教えてください。
Sub テキストファイルを開く()
Dim cdir As String
Dim tdir As String
Dim tfi As String
Dim filenum As Integer
cdir = ThisWorkbook.Path
tfi = "########_#_再修正依頼.txt"
tdir = cdir & "\" & tfi
filenum = FreeFile
Open tdir For Input As #filenum
End Sub
上記のマクロを実行すると実行時エラー53 「ファイルが見つかりません」と出て
「Open tdir For Input As #filenum」の部分が黄色くなっております。
テキストのファイル名は物件毎に変更になる半角の英数字「8」+「_」+半角「1」+「_」と
固定文字の「再修正依頼」です。
尚、作業フォルダ内にはテキストファイルが一つしか有りません。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
>尚、作業フォルダ内にはテキストファイルが一つしか有りません。
本当でしょうか?
だとすると、
>数字は物件毎に変更され・・・
とおっしゃっているので、物件毎にフォルダが作成され、同じマクロを記述したEXCELブックがフォルダ毎に存在することになります。一見無駄に見えますが、そのように運用されているということでよろしいのでしょうか?
テキストファイルを開いてPDF化するというのが、最終目的のようなので、とりあえず、TXTファイルを読み込んでPDFとして出力するマクロを書いてみました。
仮に、TEXTファイルを読み込んで、何らかの編集を行ってから、PDFとして出力するのであれば、「ここにテキスト編集用のコードを入れる」とコメントした部分に編集用のコードをいれてください。
仕様としては、以下のようになっています。
(1)元々のマクロブックの末尾に「PDF」という名前の新しいシートを追加
(2)PDFシートのA列に指定されたTEXTファイルを1行1セルで読込む
(3)PDFシートを全列(実際はA列のみ)が1ページに収まるよう設定
(4)TEXTファイルの名前の拡張子を.PDFに替えてPDFファイルとして同じフォルダに保存
という流れです。
また、テキストファイルは文字コードがShift-JISで作成されている場合とUTF-8で作成されている場合がありますが、コメントに従ってどちらかを活かしてください。(文字化けしない方にするということになります)
Sub txt2pdf()
Dim tDir As String
Dim tName As String
Dim pName As String
Dim fName As String
Dim fpName
Dim r As Long
Dim buf As String
Application.ScreenUpdating = False
Worksheets.Add After:=Sheets(Worksheets.Count)
ActiveSheet.Name = "PDF"
tDir = ThisWorkbook.Path
tName = "*_再修正依頼.txt"
fpName = tDir & "\" & tName
fName = Dir(fpName)
If fName = "" Then
MsgBox "該当ファイルがありません。処理を中止します。"
GoTo Label1
End If
pName = Replace(fName, ".txt", "")
pName = tDir & "\" & pName
With CreateObject("ADODB.Stream")
'.Charset = "UTF-8" 'テキストファイルの文字コードがUTF-8のときはこちらを生かし"Shift-JIS"をコメントアウト
.Charset = "Shift_JIS" 'テキストファイルの文字コードがShift-JISのときはこちらを生かし"UTF-8"をコメントアウト
.Open
.LoadFromFile fName
Do Until .EOS
buf = .ReadText(-2)
r = r + 1
Cells(r, 1) = buf
Loop
.Close
End With
'ここにテキスト編集用のコードを入れる
Dim erow As Long
Columns("A:A").AutoFit
erow = Cells(Rows.Count, 1).End(xlUp).Row
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintArea = "$A$1:$A$" & erow
.LeftMargin = Application.CentimetersToPoints(1)
.RightMargin = Application.CentimetersToPoints(1)
.TopMargin = Application.CentimetersToPoints(1)
.BottomMargin = Application.CentimetersToPoints(1)
.HeaderMargin = Application.CentimetersToPoints(0)
.FooterMargin = Application.CentimetersToPoints(0)
.CenterHorizontally = True
.Orientation = xlPortrait
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
End With
Application.PrintCommunication = True
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pName
MsgBox "txtファイルをPDF化しましした。"
Label1:
Application.DisplayAlerts = False
Sheets("PDF").Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
No.1
- 回答日時:
以下のようにしてください。
但し、openは成功しますが、それで終わっているので、このソースのままでは、表面上はなにも起こりません。
openの後に、読み込みの処理を追加すると理解しました。
Sub テキストファイルを開く()
Dim cdir As String
Dim tdir As String
Dim tfi As String
Dim fname As String
Dim filenum As Integer
cdir = ThisWorkbook.Path
tfi = "*_再修正依頼.txt"
tdir = cdir & "\" & tfi
fname = Dir(tdir)
If fname = "" Then
MsgBox ("該当ファイルなし")
End If
tdir = cdir & "\" & fname
filenum = FreeFile
Open tdir For Input As #filenum
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/02/05 09:55
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Excel(エクセル) 【マクロ】フォルダを3つ、POモニター上に、決まった並べ方をしたい 4 2022/08/31 11:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/10 09:06
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel_マクロ_現在開いているシ...
-
エクセルで特定の列が0表示の場...
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
Excel マクロ VBA プロシー...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
エクセルに張り付けた写真のフ...
-
ExcelのVBA。public変数の値が...
-
Excel マクロでShearePoint先の...
-
ExcelVBAでPDFを閉じるソース
-
ダブルクリックで貼り付けた画...
-
エクセルでページをコピーして...
-
Excelマクロで印刷設定
-
accessで未入力の場合にメッセ...
-
【Excel】複数のマクロをまとめ...
-
wordを起動した際に特定のペー...
-
マクロ実行時、ユーザーフォー...
-
Excelで大量のデータを規則的に...
-
EXCELのマクロの重複起動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
一つのTeratermのマクロで複数...
-
Excel_マクロ_現在開いているシ...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
Excel マクロでShearePoint先の...
-
エクセルに張り付けた写真のフ...
-
ExcelのVBA。public変数の値が...
-
エクセルで別のセルにあるふり...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
エクセルで縦に並んだデータを...
-
マクロ実行時、ユーザーフォー...
-
Excel VBAからAccessマクロを実...
-
ダブルクリックで貼り付けた画...
-
【EXCEL VBA】オートシェイプを...
-
マクロで空白セルを詰めて別シ...
-
wordを起動した際に特定のペー...
おすすめ情報
ファイル名ですが例えば「12345678_5_再修正依頼.txt」となり前半の数字は物件毎に変更され
後半は固定文字です。
大変困っております。
回答をお願いします。
もし
よろしければ
もう一つの質問の回答も教えて頂けますか?
テキストファイルからPDFファイルに変更する質問です
よろしくお願いします