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

People Who Wowed This Post

昨日の夕景(2022.11.06)

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


わかお かずまさ
VegaSystems

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


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

People Who Wowed This Post

今日の夜明け前

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


わかお かずまさ
VegaSystems

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

#HW01

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

People Who Wowed This Post

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

People Who Wowed This Post

今日の御嶽山(2022.11.05)

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


わかお かずまさ
VegaSystems

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

People Who Wowed This Post

今日の日の出(2022.11.05)😄

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


わかお かずまさ
VegaSystems

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

People Who Wowed This Post

まもなくスキーシーズン

まもなくスキーシーズン
あと一ヶ月でスキーシーズンが始まります。
リフトを降りて、ストックベルトを装着するの少し手間取る構造だったので
新しいアイテムにしてみました。
はめるのは押し込むだけ、離脱にはTOPのボタンで外れます、転倒時等の場合、
強い力がかかると外れる構造です。


わかお かずまさ
VegaSystems

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

#SKI
#kuma

People Who Wowed This Post

新人研修

今日は、クライアント様の新人の研修です。
ネットワーク敷設の状態、各拠点との接続形態、操作上の基本注意。
異常発生時の連絡と対応方法などをレクチャーします。

入社は随時なので、都度、一人でも行っています、費用は月々のメンテナンス経費で
賄います。


わかお かずまさ
VegaSystems

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

People Who Wowed This Post

今日の日の出(2022.11.04)😄

今日の日の出(2022.11....
今日の日の出時刻は6:20分ごろに。
随分、時刻が遅くなりました・・・・


わかお かずまさ
VegaSystems

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

#LX100M2

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

People Who Wowed This Post

Excel-VBA 月次更新

シフト管理を行うExcelVBAのSource。
ここでのシフトの基本は、一週間の予定を事前に決定し、それを5週分連動され、
一ヶ月の予定は、この中なら切り出す仕組みとしている。

具体的には、日から始まり土で終わる週予定の作成し、その5週分をセルのリンクで
構築する。

一ヶ月で1Bookを使う、ブック名の末尾には年と月を表す数字がある
Furesia-202211.xlsm
最後の6文字で年と月を表している、月次更新は、当月BookをRenameして保存する。

週分の予定を確定させ、このVBAを動かすと、Book名から該当月を切り出し、月初
の日付(当然01)を付加し、この日付の曜日を関数で求め、日曜日を1とする値を
得る。更に、月末の日付を求める(28,29,30,31)、この2つの値があれば、
5週分のデータから該当月の一ヶ月分を切り出し、作業Sheetに貼り付けることを
行うアルゴリズムとなっている、手作業なら簡単であるが、日付や曜日の錯誤の
恐れがあるので、あえてVBAで処理をした。

Sub Month_UDT()
'
' Month_UDT Macro
' MAS1の5週間連続データから、月の状況に合わせた期間をコピーし、SKD1に貼り付ける

'
Dim XlName As String

Dim Mou As String
Dim MouED As String

Dim BookNam As String
Dim MonST_n As Long
Dim MonEN_n As Long
Dim SST_n As Long
Dim SEN_n As Long

Dim Rtn As Long

'  ファイル名を取得
XlName = ThisWorkbook.Name

' Debug.Print ThisWorkbook.Name


BookNam = Mid(XlName, 9, 6) ' ファイル名から年・月を切り出す

Sheets("MAS1").Select


Mou = Left(BookNam, 4) & "/" & Right(BookNam, 2) & "/01" ' 検索用に年月日を作成
'Debug.Print Mou

MouED = WorksheetFunction.EoMonth(Mou, 0) ' 月末日の決定


Range("A5") = Mou
Range("A6") = WorksheetFunction.EoMonth(Range("A5").Value, 0)

MonST_n = Weekday(Mou) ' 1日の曜日を求める

SST_n = MonST_n + 18

'MonEN_n = WorksheetFunction.EoMonth(Range("A5").Value, 0)

MonED = WorksheetFunction.EoMonth(Range("A5").Value, 0)

MonED_n = Day(MonED) + SST_n - 1




Range(Cells(13, SST_n), Cells(62, MonED_n)).Select ' 当月分のコピー

' Selection.Copy


Rtn = MsgBox("コピーしますか、月初の曜日を確認して下さい", vbYesNo)

If Rtn = vbYes Then


Sheets("SKD1").Select 'SKD1の古いデータの削除

Range("AD2:AG2").Select
Selection.ClearContents

Range("C10:AG59").Select
Selection.ClearContents



Sheets("MAS1").Select


Range(Cells(13, SST_n), Cells(62, MonED_n)).Select ' 当月分のコピー

Selection.Copy



Sheets("SKD1").Select ' 貼り付け
Range("C10").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B1").Select


Sheets("MAS1").Select ' 曜日のコピー

Range(Cells(12, SST_n), Cells(12, MonED_n)).Select

Application.CutCopyMode = False
Selection.Copy

Sheets("SKD1").Select ' 貼り付け
Range("C2").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


Else

End If

'

End Sub




わかお かずまさ
VegaSystems

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

People Who Wowed This Post

×
  • If you are a bloguru member, please login.
    Login
  • If you are not a bloguru member, you may request a free account here:
    Request Account