EXCELマクロで苦手な配列(Array)を使って簡単なテストマクロを作ってみる!

スポンサーリンク
050-VBA

へっぽこヘタレシステム管理者の管理人です。

管理人はいちおう職場ではエセなシステム管理者をやっており・・・

  • EXCELマクロの作成
  • Accessでの簡単なソフトウエアの内製
  • RPAのシナリオ作成
  • GoogleスプレッドシートのGASの作成

などもやっています。

コードを覚えられないヘタレ

しかし、毎日やるわけではないので、結構すぐに忘れてしまい・・・

何かを1から作るときは、殆どをググって凌いでいる状況です。

頭が悪いのでコードを覚えることが、まったくできません・・・

こんため自分のブログのマクロ忘備録によく使うコード等をなるべく残す様にしておき

すぐに検索できるようにしています。

しかし、それでも全てのコードを掲載することもムリなので、

結局、ネットで検索してなんとか対応している感じですね。

ただ、最近ではChatGpt君が適当に書いたコードを動くように修正してくれるので、

仕事で使う程度のコードを書くのはかなり楽になりました。

スポンサーリンク

苦手なArrayを使ってみる

さて、今回は管理人が苦手とするモノの一つである

Arrayを使って簡単なマクロを組んで練習することにしてみました。

作ってみたコードは次のとおりです。

コードの内容は・・・・

A列に1~0までの数字をあらかじめ記載しておき・・・

1から10まで可変する変数が、A列の数字と一致した場合に

B列にその数字を入力するというモノです。

コードは次のとおりです。

Sub testarray()

    Dim maxrow As Integer
    Dim arrayX As Variant
    
    arrayX = Array(3, 6, 8) 'A列の数字と一致する数字を配列に格納

    maxrow = Cells(Rows.Count, 1).End(xlUp).Row 'A列の最大行を取得
    
    For i = 1 To maxrow '1から最大行まで変数を可変させる

            For Each item1 In arrayX '配列の中の数字を順番に参照
                
                If Cells(i, 1) = item1 Then '変数と配列の数字が一致したら
                    Cells(i, 2) = item1 'B列に一致した数字を入力
                Else
                End If
            
            Next item1

    Next i

End Sub

ポイントは・・・

スポンサーリンク

Dim arrayX As Variant の宣言

arrayX = Array(3, 6, 8) 配列の格納

For Each item1 In arrayX ’配列の値を順に参照
 好きなコードを記載
Next item1

ブログランキングにご協力ください!
ブログランキング・にほんブログ村へ

でしょうか・・・

覚えられれば良いのですが・・・

なかなか覚えられません。

最大行を取得する

Cells(Rows.Count, 1).End(xlUp).Row

すらも、覚えられずに毎回検索しています。

なんで、こんなに物覚えが悪いのでしょうか・・・

自己嫌悪になります。

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

コメント

タイトルとURLをコピーしました