まず、なぜオブジェクト指向っぽい体系なのにそれがあまり語られないのであろう。また、例文やクラスの利用方法を示していても、全てを網羅しているわけでもないのにオブジェクトブラウザとヘルプなどでの当たりの付け方などに言及されないのはなぜなのだろう。エクセルはパソコンを職業とする人以外の人たちも多数利用し、プログラマでもないのに結構使いこなしている方を見かけるのだが、よほど先入観がないか、優れた人達なのではないだろうか。
そんな一般な人たちに脅威を抱きつつ、テキスト貼り付けマクロのコードの見直しとクラス風味への変更を行なってみた。本と首っ引きで作成したのが前回のもので、今回はオブジェクトブラウザとヘルプ、及び、マクロの記録を使ってコードを書きなおしてみた。かなり短くなってしまったが、やりたかったイメージはこちらの方が近いと思う。クラス風味にすることで、他のエクセルのライブラリへの理解も深まろうというものです。しかし、作るのに時間がかかるなぁ。頭悪すぎを実感します。
呼び出しマクロ
Sub test()
Dim List As New TextListing
With List
.PathName = ThisWorkbook.Path
.TextListing
End With
End Sub
クラス風味のコード
Public PathName As String
Sub TextListing()
Dim temp As Workbook
Dim fname As String
'テキストファイルにマッチングするよう指定
fname = Dir(PathName & "\*.txt")
Do While fname <> ""
'指定のファイルを新しいブックに読み込む
Set temp = Workbooks.Open(Filename:=PathName & "\" & fname,Format:=5)
'フォントサイズを9ポイント
temp.Worksheets(1).Cells.Font.Size = 9
'フォントを HGゴシックE に変更
temp.Worksheets(1).Cells.Font.Name = "HGゴシックE"
'枠線の消去
ActiveWindow.DisplayGridlines = False
'読み込んだシートをマクロを起動したブックに移動
temp.Worksheets(1).Move Before:=ThisWorkbook.Sheets(1)
'次のファイル名を取得
fname = Dir
Loop
End Sub
0 件のコメント:
コメントを投稿