● mdb内のモジュールを全てテキストファイルに書き出すプログラム
一応、全てのモジュールを開いておいてから、以降のコードを実行します。
(標準モジュールにコピペして実行します。)
コードが1行も書かれていないモジュールがあると止まってしまうので、そういうモジュールがあったら閉じておきます。もしくは「Option Explicit」と書いて上書き保存します。それから実行します。
以下の例では、「Open "D:\" ・・・」の行で、Dドライブのルートに「全コード.txt」というテキストファイルに書き出される設定にしていますので、書き出す場所は "D:\" を書き換えて、好きなところに変更してください。
なお、Cドライブのルートには権限の関係で書き出せない場合があるかもしれません。
書き出したら、Wordにでも転記して、コメントだけをVBAで緑色に変更すればいいと思います。
参考:「Wordに貼り付けたVBAプログラムコード内容の、コメントの文字色を緑にするプログラム」https://euc-access-excel-db.com/tips/ct07_se/ct071801_ac2ktips/word-coment-green
コメントは書いた当時(10年以上前?)から変えていないので、何を言っているのか自分でもわかりません。
すみません。
************
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
Sub AllModuleOutput() Dim mdl As Module Dim i As Integer Dim e As Integer Dim OutputFile1 As String Dim intFileNum As Integer Dim txtstr As String OutputFile1 = "全コード" & ".txt" intFileNum = FreeFile Open "D:\" & OutputFile1 For Output As #intFileNum e = Modules.Count - 1 '開いているモジュールの数を数える。 'Modulesコレクションは「現在開いている」モジュール 'しか対照にしないので、事前に全てのモジュールを開いて 'おく必要がある。そのためには、イベントプロシージャから 'VBEを開いてこのコードを実行した方が良い。 '数を数えられる方法が見つかれば、そうする。 'ちなみに「AllModules」を使うと開いた標準モジュールと閉じた標準モジュール 'の両方の数を数えられる。しかし、クラスモジュールは対象外。 'もし、そんな風に開かなくても、閉じたクラスモジュールの For i = 0 To e Set mdl = Modules(i) If mdl.Type = acClassModule Then txtstr = mdl.Lines(1, mdl.CountOfLines) Debug.Print txtstr Print #intFileNum, "*******************************************" Print #intFileNum, Modules(i) Print #intFileNum, txtstr Else 'OpenModuleは標準モジュールしか開けない。クラスモジュールは開けない。 DoCmd.OpenModule Modules(i) '標準モジュールを一応開いておく。 txtstr = mdl.Lines(1, mdl.CountOfLines) Print #intFileNum, "*******************************************" Print #intFileNum, Modules(i) Print #intFileNum, txtstr End If Next i Close #intFileNum End Sub |
- 投稿タグ
- AccessVBA