Excel VBAを始めるには(008)

前回は繰り返し処理の話。
繰り返し処理の場合、Excelでは多くのセルを参照する事が可能となるが、その場合
必ず必要となるのが条件分岐。

条件分岐にはIf-Then-Else-Endif または Switch case -End Case などがある。

条件分岐はVBAに限らず、プログラム言語での重要性が高い。
これは「判断」を行う処理であるため、いわゆる「知能」の部分である、それゆえ
この構築で、処理速度を始め、結果などに大きな差が出ることがある。

しかし、最初はとにかく経験なので書いてみることが重要。
もう一点、条件分岐で重要なのは、実は可読性。

条件分岐は、整理して置かないと「抜け」や「重複」が発生する、想定外等の
値にも対応せねばならない。その意味でもVBAを構築する場合、一番の難関と言える。




わかお かずまさ
VegaSystems

📷📷📷📷📷📷
#LAN_PRO
#Bloguru
#kuma

ワオ!と言っているユーザー

昨日は強風(2022.11.06)

昨日は強風(2022.11.0...
昨夕は、かなりの強風。
柿園での作業を終え、吉良の糟屋邸を見学し帰宅した。

強風で鈴鹿山系も名古屋市街もよく見ることが出来た。
特に名古屋付近は強風がない限り、視界が悪い、昨夕は良かった。


わかお かずまさ
VegaSystems

📷📷📷📷📷📷
#LAN_PRO
#Bloguru
#kuma_ichinomiya
#VegaSystems
#photography_Ichinomiya
#OM_D_E_M1X

#sunrise_ichinomiya
#Sunset_ichinomiya
#日の出_一宮
#夜明け_一宮
#kuma

ワオ!と言っているユーザー

Excel VBAを始めるには(007)

今回はLoop、いわゆる繰り返し処理。
プログラムは上から下へ1Stepずつ実行される。
これを後戻りするにはGotoという命令を使うが、これは本来の使用途ではない。

繰り返しとは、同じ形式の処理を何度も行う場合、それを普通のStepで書いては
大変なので、その処理を繰り返させる事をLoop処理という。

Loopには、Do Loop-End Loop と For-Next が使われる。

例えば50人分の一ヶ月の項目は1550となる、これは50行、31列で画面で視認出来る
大きさであるが、これの1セルづつをチェックして、相応の処理をするのは人力では
限界がある。

この処理を1550回繰り返させるのがLoop処理、近年のPCのなら1秒程度で、その
処理が出来る。

Excelでは簡単に出来ない処理だ。


わかお かずまさ
VegaSystems

📷📷📷📷📷📷
#LAN_PRO
#Bloguru
#kuma

ワオ!と言っているユーザー

Excel VBAを始めるには(006)

VBAについてごちゃごちゃ書くことをお許しいただきたい。
VBAはプログラムであり、政府が騒ぐデジタル教育の中で最も身近にある「道具」で
ある。
プログラム教育を小学校からと騒いでいるが、プログラム教育に携わる方々は本当に
それを理解しているのか、私の知る限りでは、はなはだ疑わしい。

プログラム教育は「慣れろ」ではない、Sourceを見、Webの検索で理解出来る方は、
ごく少数であると言える。きちんした基本形があり、概念を学ばねばならないが、
小学校の教員でそれがどこまで出来ているのであろうか。

これは英語を理解していない人が、英語を教えているように思える。
なにやら視覚的に学べる道具を使うようだが、実際の現場ではSourceのコーディングと
なる、この事をどこまで文科省は方針として理解しているのだろうか。

VBAをきっかけとして、プログラミングを習得できれば、他の言語習得のハードルは
一気に低くなる。「プログラム言語」の基本は、どの言語でも大差はない。
むしろ、中身がBlackBoxのLIBなどをやたらくっつける言語などより、VBAのほうが
基礎学習には優れた部分が多い。

コロナ後、厳しい経済状況が予想される、「手に職」を付けることが、一番簡単で、
自分を有利にすることが出来る。私の経験では他国言語の習得より、ハードルは低く、
過度な「記憶能力」は要求されない。

いま、Excelで作業している事を、VBA化する事に集中することを強くすすめる。

「今やらないで、いつやるのか」

わかお かずまさ
VegaSystems

📷📷📷📷📷📷
#LAN_PRO
#Bloguru
#kuma

ワオ!と言っているユーザー

Excel VBAを始めるには(005)

関数について解説する。
EXcelではSUM関数を始め、豊富な関数がある。VBAでも此等は宣言をするこで同様に
使うことが出来る(WorkSheetFunction)。
VBAでは関数の使用は変数を介することで、用途は飛躍的広がる、変数は表示名は
そのままで中身が入れ替わるので、様々な場面で有用であるが、これに関数を絡ませ
ると、更に用途が拡大する。

VBAで多用するのは文字関数で、セルの値を様々な形で切り出す事が出来る。
Excelにも同じ関数があるが、都度入力設定が必要な操作では無く、VBAではプログラム
として固定する事ができる。

文字関数としてLEFT/MID/RIGHTなどがよく使われる、詳細はWebでチェックしてほしい。
セルの値が「103-25-2」とある場合、103のみを切り出す事が出来、更に、これは
文字であるため、数値変換もVAL関数(文字から数値)で可能となる。
それも1Stepで記述が出来る。


わかお かずまさ
VegaSystems

📷📷📷📷📷📷
#LAN_PRO
#Bloguru
#kuma

ワオ!と言っているユーザー

昨日の夕景(2022.11.06)

昨日の夕景(2022.11.0...
昨日の夕景。
中央が鎌ヶ岳、右山麓の二段目あたりから崩落で鎌状のえぐれがあり、これが
山名となっています。右は御在所、測候所の突起もみることが出来ます。


わかお かずまさ
VegaSystems

📷📷📷📷📷📷
#LAN_PRO
#Bloguru
#kuma_ichinomiya
#VegaSystems
#photography_Ichinomiya
#OM_D_E_M1X


#sunrise_ichinomiya
#Sunset_ichinomiya
#日の出_一宮
#夜明け_一宮
#kuma

ワオ!と言っているユーザー

今日の夜明け前

今日の夜明け前
今日の夜明け前


わかお かずまさ
VegaSystems

📷📷📷📷📷📷
#LAN_PRO
#Bloguru
#kuma_ichinomiya
#VegaSystems
#photography_Ichinomiya

#HW01

#sunrise_ichinomiya
#Sunset_ichinomiya
#日の出_一宮
#夜明け_一宮
#kuma

ワオ!と言っているユーザー

Excel-VBA セルに背景色その2

少し簡単にパターンの紹介。
これはセルの値の部屋番号での着色。
すべてSelect Case文、
前後に着色のWith-EndWithを入れ、その中で
Case で値を決め、着色します。

以下、Source
Sub Room_Color()
'
' Room_Color Macro
'
' Helper Sheet上の部屋番号に着色します。

Sheets("HELPER").Select


Dim i, j, k As Long

Dim Rom_c As String

For i = 2 To 51

For j = 5 To 33

Rom_c = Cells(j, i)

If Rom_c = "" Then

GoTo CONTINUE:
Else

Rom_c = Left(Rom_c, 3)

Cells(j, i).Select

With Selection.Interior

.Pattern = xlSolid
.PatternColorIndex = xlAutomatic

Select Case Rom_c


Case "102"

.ColorIndex = 3

Case "103"

.ColorIndex = 4

Case "105"

.ColorIndex = 50

Case "106"

.ColorIndex = 6

Case "107"

.ColorIndex = 7

Case "108"

.ColorIndex = 8

Case "110"

.ColorIndex = 10

Case "111"

.ColorIndex = 12

Case "112"

.ColorIndex = 14

Case "201"

.ColorIndex = 15

Case "202"

.ColorIndex = 16

Case "203"

.ColorIndex = 17

Case "205"

.ColorIndex = 19

Case "206"

.ColorIndex = 20

Case "207"

.ColorIndex = 42

Case "208"

.ColorIndex = 22

Case "210"

.ColorIndex = 23

Case "211"

.ColorIndex = 24

Case "212"

.ColorIndex = 33

Case "213"

.ColorIndex = 34

Case "215"

.ColorIndex = 35

Case "216"

.ColorIndex = 36

Case "217"

.ColorIndex = 37

Case "218"

.ColorIndex = 38

Case "220"

.ColorIndex = 39

End Select


.TintAndShade = 0
.PatternTintAndShade = 0

End With

'Debug.Print Rom_c

End If

CONTINUE:



Next j


Next i

Range("A1").Select


'
End Sub



わかお かずまさ
VegaSystems

📷📷📷📷📷📷
#LAN_PRO
#Bloguru
#kuma

ワオ!と言っているユーザー

今日の御嶽山(2022.11.05)

今日の御嶽山(2022.11....
今日の御嶽山
雲が少しあります、先日の雨はお山は雪になり、冠雪が始まりました。


わかお かずまさ
VegaSystems

📷📷📷📷📷📷
#LAN_PRO
#Bloguru
#RX10M3
#kuma

ワオ!と言っているユーザー

今日の日の出(2022.11.05)😄

今日の日の出(2022.11....
今日の日の出、位置は猿投山の頂上を過ぎ、南麓にかかりました。
今日は、少し雲があり、発色が綺麗です。


わかお かずまさ
VegaSystems

📷📷📷📷📷📷
#LAN_PRO
#Bloguru
#kuma_ichinomiya
#VegaSystems
#photography_Ichinomiya
#S1H
#sunrise_ichinomiya
#Sunset_ichinomiya
#日の出_一宮
#夜明け_一宮
#kuma

ワオ!と言っているユーザー

×
  • ブログルメンバーの方は下記のページからログインをお願いいたします。
    ログイン
  • まだブログルのメンバーでない方は下記のページから登録をお願いいたします。
    新規ユーザー登録へ