Excelのこととか色々

Excel のこととか楽天とか いろいろ書いてみます・・・

【VBAスタンダードに挑戦!】For Each...Next(配列の操作)

【VBAスタンダードに挑戦!】

f:id:tuna-kichi:20200614200940p:plain

 

本日の5分勉強の内容

 

 

********************************************************

For Each...Nextステートメント

・グループのメンバーをひとつずつ、順番に調べる(操作する)

・グループは以下の3つが指定できる

 コレクション(同じ種類のもの(ブック、シート etc.))
 複数セル
 配列

・記述方法
 For Each 変数 In グループ名
  変数を使った処理
 Next 変数

 

配列の操作

・複数の要素が集まった集合体(コレクション)と考える

・配列に格納された値をひとつずつ操作(チェック)する

・値を操作するときは必ず Variant型 を指定する
 (その他の型を指定するとエラーとなる)

 

                   

 

Sub 配列の操作()

 Dim GoodsName(2) As String  '変数をStringで定義
 Dim A As Variant  '配列の値を操作するために使う変数をVariant型で定義

 GoodsName(0) = "Shirt"
 GoodsName(1) = "Cap"
 GoodsName(2) = "Shoes"

 For Each A In GoodsName
  Select Case A
   Case Is = "Shirt"
    MsgBox "¥2000"

   Case Is = "Cap"
    MsgBox "¥1500"

   Case Is = "Shoes"
    MsgBox "¥5000"

  End Select

 Next A

End Sub

※Goods・・・商品、品物

********************************************************

うーん・・・

本日も最初の一言はこうなってしまいました・・・

 

私にとって配列はすんなり理解できない項目です。

これは、無理やりにでも配列でコードを書いてみないと

しっかりと覚えることが できないかも。

 

上記のコードで、配列の値をチェックして処理するところに

Select 文を使ってみました。

 

列Aに商品名があって、その値段を列Bに入力していく

というような使い方なら なんとなくわかる。

(実際は、値段表を別に作成しておいて、
 VLookup で取得した方が早いと思うけど)

 

テキストの For Each ... Next の最後の説明に、

「"For Each ... Next" は "For ... Next" で実現できることが多い。

違いは、For...Next は順番が重要、

For Each ... Next はとにかく全部処理する

 

というようなことが、書かれていました。

For Each についての知識、使い方を理解しておくことは必要ですが、

実際の業務では使い慣れた For...Next を使ってしまいそうです。

 

事実、今のところ For...Next だけで足りているので。

 

 

 

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/