へっぽこヘタレシステム管理者の管理人です。
管理人はいちおう職場ではエセなシステム管理者をやっており・・・
- 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
すらも、覚えられずに毎回検索しています。
なんで、こんなに物覚えが悪いのでしょうか・・・
自己嫌悪になります。
コメント