2024.12.05
【弊社紹介】社内勉強会開催!2024上期総集編
2018.04.24
プログラミングVBAでファイル出力をした話
お久しぶりです。Mです。
先日初めてVBA(エクセルマクロ)を触る必要に迫られました。
全てを調べながらですが、思ったよりは簡単だったなという印象です。
基本的にはWorkbookだったりWorksheets等が最初は難しかったですが、意外と何とかなりました。
そこで、今回使ったものを再利用の意味も含めてまとめたいと思ったので記事にします。
Dim reg As Object Set reg = CreateObject("VBScript.RegExp") With reg .Pattern = "(\(.*\))" 'パターンを指定 .IgnoreCase = False '大文字と小文字を区別するか(False)、しないか(True) .Global = False '文字列全体を検索するか(True)、しないか(False) End With reg.Replace("ab(cd)ef", "")
上記を実行することで、(cd)が空文字列に置換されて、abefとなります。
これは確かGoogleさんでggって調べてほぼそのままだった気がします。
Dim datFile As String datFile = ActiveWorkbook.Path & "FileName" & ".txt" Open datFile For Output As #1 Print #1, "abcdef" Close #1
上記を実行することで、エクセルファイルのあるディレクトリにFileName.txtというファイルが作成され、”abcdef”の文字列が入ってます。
Open datFile For Output As #1
上記の部分のOutputをAppendにすると元のファイルを消さずに追記していく事ができます。
For Each ws In ThisWorkbook.Worksheets Next
これだけです。
これだけですが、役に立ちました。
ws.Nameや、ws.Cells(1, 1)などこんな感じで使えます。
If ws.Cells(i, 5).Value <> "" Then End If
例えば、セルの値が空文字列の時という感じですね。
何も迷うことはありませんね。
何かデータをまとめた資料をあるフォーマットのtxtに出力したいという時に役立ちました。
そんな機会が来たらぜひ使ってみてください。
難しそうだと思っていましたが、動かしてみるとしっかり動いて感動しました。
以上です。
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索