プログラムを作成する場合は、後から見てわかりやすく書いておく必要があります。
それは、コメントやインデントのルールだけでなく、目的とする機能を実現するための記述方法も統一しておくことも含みます。
今回は、下記の2種類のファイルを読み込む関数
・Workbooks.Open
・ExecuteExcel4Macro
それぞれのセルの指定方法を例にして、プログラムのわかりやすさについて考えてみました。
#個人的な”好き、嫌い”もありですが
(1)オーソドックスな Workbooks.Open の場合
この方法は、普通にファイルを開いて、目的のシートに行って、該当するセルの内容を読み取るという、操作方法と同じイメージです。
そのまま動作させると、読み込む対象のExcelファイルが表示されるので、イメージが掴めると思います。
例えば、変数宣言は省略しますが
set wb =workbooks.Open("読み込みファイル.xlsx")
v = wb.Sheets("ターゲットシートID").cells(4,5).value
といった感じになります。
(2)Excelファイルを開かずに読みに行く executeExcel4Macro の場合
この関数を使うと、ファイルを開かずに内容を読みに行くので、最初はスマートな方法を見つけた!と喜んでいました。
プログラムコードはこんな感じです。
cellStr = "'C:\Filedir\[読み込みファイル.xlsx]ターゲットシートID'!R4C5"
v = ExecuteExcel4Macro(cellStr)
ところが、私にはこのセルを指定するCellStrの記述がとても面倒なのです。
(3)どっちがいい?
プログラムは、このように同じ目的を果たすためにいくつかの方法でアプローチできてしまいます。
”どれが正解”ということもない場合がほとんどです。
もちろん、ファイル数、シート数、読み込みセル数、などによって実行時間やCPU負荷が変わってくるので、特に大量のデータを操作する場合は、、(1)(2)のどちらが向いているかを比較しなければならない場合もあるでしょう。
選択基準には、「間違えにくい」「いつ、誰が見てもわかりやすい」というポイントもあります。
こういった基準からすれば、私には「(1)の方がこれまでの書き方と統一されている」ことになります。
今までどんな記述方法を取ってきたか、周りはどのような記述ルールに従っているか、多くの人がわかりやすいか、などを考えると選択肢は決まってくると思います。