このページはVer6の日本語化方法についてです。
PhotoFiltre公式ページを開き、Englishをクリック
「Language files for PhotoFiltre」から下にスクロールして、
「Japanese/Japonais」をクリックし、ダウンロードする
ダウンロードした「TranslationJP.zip」を展開(解凍)する
解凍したファイル「TranslationJP.plg」をコピー
PhotoFiltreをダウンロードしたフォルダに「TranslationJP.plg」(日本語)を貼り付けて、
「TransLationEN.plg」(英語版)を削除する
PhotoFiltreを起動する
ツールの文言が日本語になっている
完了
特定列(lCol)の最終行を取得します。
Function GetMaxRow(lCol) As Variant Dim c As Range Set cl = Cells(Rows.Count, lCol) If cl.Value <> "" Then GetMaxRow = Rows.Count Else GetMaxRow = cl.End(xlUp).Row End IfEnd Function
サンプルコードでは最終行を取得する処理(画像の③)だけでなく、条件(①)をつけています。
エクセルの使用中の最終行を取得する場合、③の処理のみでは失敗するケースがあります。それは、エクセルの最大行に値が入っている場合です。(↓の画像参照)
そのため、条件(①)を付けています。
上の画像のケースで、③の「GetMaxRow= cl.End(xlUp).Row」を実行するとGetMaxRow(最終行)=1行目となります。
しかし、正しくは②GetMaxRow=最大行(1048576行目)となるべき。ですから、条件①で、最大行のみ場合分けするようにしました。
最終行を取得する方法はいろいろありますが、Endを使って取得するときは最大行の値に注意する必要があります。
しかし、シートの最大行までは使わない!そんなにデータがない!ということであれば、③の「GetMaxRow= cl.End(xlUp).Row」のみで問題ありません。
同じ種類の変数の集合体です。前から順番に0、1、2、3…と番号が振られており、データをセットしたり、使うときは番号で指定します。
0番目のデータを使うときは「ary(0)」のように指定します。下の図は、配列ary(3)に数値100、200、300、400を代入するイメージです。
コーディングすると以下の通りです。
サンプルコード
Sub Hairetsu() Dim ary(3) As Integer ary(0) = 100 ary(1) = 200 ary(2) = 300 ary(3) = 400 End Sub
①のDimは変数を使えるようにするための宣言です。この宣言以降、aryという配列を使えるようになります。
②は配列の名前です。
③で配列内にいくつ変数を持つか指定します。例では、4つ(0番~3番)となります。添字(()内の数字)通りの3つにならないことに注意しましょう。配列内の変数の数は添え字+1個です。
④As 型名 で配列の型を表します。今回は数値として使いたいので型名をIntegerとします。Integerは数値の変数で-32,768 ~ +32,767までの値を代入することができます。
最初に説明した、4つの箱にデータをいれているイメージをコーディングしたものになります。
ここまでで、配列に数値データを設定しました。今度は「配列内のデータそれぞれに100を加算する」処理を行います。
サンプルコード
ary(0) = ary(0) + 100 ary(1) = ary(1) + 100 ary(2) = ary(2) + 100 ary(3) = ary(3) + 100
配列の0番目に、100を加えて配列0番目に戻す。処理をしています。配列の1番目から3番目も同様に処理しています。
1行目の処理を絵にすると、このようなイメージですね。
しかし、4つの処理を1行ずつかくのは少し手間です。4つだとまだ楽ですが、ary(1000)の時に処理を1001回書くわけにはいきません。そんな時にループ処理を使います。
サンプルコード
For i = 0 To 3 ary(i) = ary(i) + 100 Next
解説
先ほど4行書いていた処理が、「ary(i) = ary(i) + 100」という1行にまとめることができました。
「 For i = 0 To 3」は i を0から3まで増やしていく という意味です。
「ary(i) = ary(i) + 100」の i は「 For i = 0 To 3」で指定される i (0~3)に置き換えて実行します。
なので、
iが0のとき ➡ ary(0) = ary(0) + 100 を実行 iが1のとき ➡ ary(1) = ary(1) + 100 を実行 … iが3のとき ➡ ary(3) = ary(3) + 100 を実行 |
となり、1行ずつコードを書いた時と同じ処理になります。
このように、配列を使うとデータに連続性が出るのでループで同じ繰り返し処理をすることができて便利です。配列とループ処理は非常に相性がよいのです。