連鎖メソッドで、コードの記述を簡略化しよう

Pocket

序文

エクセル関数日本語化のインストール方法は、以下の記事を参照してください。

なお、ここで紹介するコードは「エクセルVBA日本語化」ver0.12以上が必要です。

下記URLよりダウンロードされてください。

日本語VBAを作成するには、「標準モジュール」というシートを作成する必要があります。

「標準モジュール」というシートを作成するには、以下の記事を参考にされてくださ。

レッスン

はい。今までの日本語VBAでは、以下のような色塗りをする際に、・・・、

「偶数行」がオレンジに着色された
「偶数行」がオレンジに着色された

以下のような途中で重複のある日本語VBAを書く必要がありました。

たとえば、「g_道具.セル.選択範囲(選択範囲パターン偶数行).書式」までを2度書くために、コピペをして原始的に対処していました。

詳しくは以下の記事を参照してください。

 

そこで、「連鎖メソッド」という方法を作ってみました。

「連鎖メソッド」とは「チェーンメソッド」とも呼ばれ、メソッドとメソッドがチェーンのようにつながっているメソッドのことを言います。

JavaScriptのjQueryなどでも使用されています。

ちなみに、上記日本語VBAをチェーンメソッドで書くと、以下のようになります。

一行目と二行目は連結されていて、実際は一行であるものとしてエクセルは扱っています。

行末の「_」は、「この行は次行へと続きます」との印です。これがないとVBAはエラーのある行だと見なしてしまいます。

「g_道具.セル.選択範囲(選択範囲パターン偶数行).書式」までを2度書く必要がなくなりました。

ただ、これだけの連鎖だけだといまいちお得な感じがしませんね。

今後もう少し、連鎖できるメソッドを増やしていく予定です。


追記:

上記日本語VBAのコードは、少々間違っていました。

正しくは、以下のようなコードになります。

連鎖メソッドは、実際はVBAの「関数」です。

そして、VBAでは関数を1行に単独で書くことはできないため、行の先頭に「Call」をつけています。

「Call」とは、「(関数を)呼びます」という意味で、コードからエクセルに「これから関数を呼びますよ」と伝えています。


以上、大変失礼致しました。