今日の夜明け前2(2022.10.20)

今日の夜明け前2(2022.1...
今日の夜明け前、快晴です。
今日は、PSP内倉社長が来社の予定・・・


わかお かずまさ
VegaSystems

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

#SIGMA_DP0/2

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

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

Excel-VBA InStrRevは要注意

Excelのみでは意識の必要のない小数点の扱いですが、VBAの場合は変数宣言に
注意が必要です。
LongもDoubleも整数型、Singeで単小数点が扱えます。
セル内の値が、
0+12,7.5+12, 11.5+8, 6+8などがあります。
+の前が開始時刻、+の後ろが勤務時間です。
これを数値として取り出さねばなりません。

「+」の位置を検出し、LEFTとRIGHT関数で切り出すのですが、今回慣れない
InStrRevを使ってハマりました。
この関数、探索はは文字列の後ろからですが、返す値は前方からの「位置」、これを
後方からの位置とかって思い込んでの失敗です。

どうにか複雑なケースにも対応出来るように書きました・・・・
これで、Select Caseで処理が出来ます。

以下、Source



Dim Y_n As Long, X_n As Long
Dim i As Long, j As Long, k As Long
Dim Nor_n As Long, Nit_n As Long, Hol_n As Long, Mon_n As Long, Sus_n As Long
Dim Zer_n As Long
Dim W_cF_n As Single, W_cB_n As Single
Dim PoPF_n As Long, PoPB_n As Long


Dim W_c As String, W_c2 As String



For i = 3 To 34

For j = 7 To 57

W_c = Cells(j, i)

'+の前後の数値を取り出す

If W_c = "0" Or W_c = "*" Or W_c = "Y" Or W_c = "=" Then

Else

PoPF_n = InStr(W_c, "+") '+位置を検出前方
PoPB_n = InStrRev(W_c, "+") '+位置を検出後方
PoPB_n = Len(W_c) - PoPB_n + 1

If PoPF_n = 0 And PoPB_n = 1 Then

Else

W_cF_n = Val(Left(W_c, PoPF_n))
W_cB_n = Val(Right(W_c, PoPB_n))


' Debug.Print PoPF_n & ":" & PoPB_n & "-" & Len(W_c)

' Debug.Print W_cF_n & ":" & W_cB_n

End If


End If


Select Case W_c '勤務状態で色を決める



わかお かずまさ
VegaSystems

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

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

今日の日の出(2022.10.19)😄

今日の日の出(2022.10....
今日の日の出、地平線にわずかに雲がありますが、快晴です。
今朝、撮影のためにベランダに出て、今秋初めて寒いと感じました。

今日も予定がいっぱいです・・・


わかお かずまさ
VegaSystems

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

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

Excel-VBA 転記は間違いの元

Excelで、「転記」しかしないかた、VBAを書けとは言わないけど、せめて
Macroは使いましょう。
PCの前で、転記をしたりワープロのようにフォントサイズを変えて、無理やりセルに
押し込む事は時間の無駄、DXとは無縁です。
それしか出来ないなら、あなたはPCでのExcelの操作には不向きです。
朝から晩まで、ウンウン唸って、この手を作業をするのは生産性の上がらない無駄な動き
です、VBAで構築すると、場合によっては数秒で終わることがあります、精度も比較に
なりません。
それをしたら、私の仕事が無くなる・・・・

真剣にそう思っているなら、あなたのこの先は、あまり良くないと言えます。


わかお かずまさ
VegaSystems

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

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

Excel-VBA データ項目の吟味

小さくてもシステム設計をするのは、それなりの準備と心構えが必要です。
クライントの「希望」を安易に受け入れてはなりません。
例えばシフト、休日の入力の時、休みと有給を区別して欲しいなどの「?」が出ます。

シフトでは従業員が出る出ないが重要で、その休日が有給を適用するか否かは労務の
問題です。便利だからとかの理由で、実際の稼働には不要な項目を希望されても、
むやみに受け入れてはいけません。


わかお かずまさ
VegaSystems

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

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

背景用スクリーンの取り付け

会社での撮影時に背景が出てしま... 会社での撮影時に背景が出てしまうので、スクリーンを取り付けた。
AMZONで5000円以下、でもやはり値段相応の品、でもこれで用はなします。
会社での撮影時に背景が出てしまうので、スクリーンを取り付けた。
AMZONで5000円以下、でもやはり値段相応の品、でもこれで用はなします。


わかお かずまさ
VegaSystems

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

#AVIUTL
#DaVinci Resolve
#OBS_Studio
#ATEMMiniPro
#Zoom
#Teams
#Web会議
#Timelapse
#NLE
#Audacity
#HW01
#kuma

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

今日の夕景(2022.10.16)

今日の夕景(2022.10.1...
今日の夕景・・・
午前中は柿園に、収穫後、刈谷の歴史博物館へ。

幸田の本光寺の寺宝、深溝松平家の展示だったか、文書が多く、それも重要なものは
「写本」ちょっとがっかり。

本光寺はあじさい寺として有名、松平家代々の菩提寺だが、墓所は残念ながら
威厳が保たれているとは言い難い。

寺宝も、この程度だとすると散逸しているのだろう。


わかお かずまさ
VegaSystems

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

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

今日の日の出(2022.10.16)😄

今日の日の出(2022.10....
日の出位置が、小牧山と猿投山の中間あたりまできました。
まもなく、猿投の北麓にかかります・・

今日は柿園で収穫のお手伝いです・・・


わかお かずまさ
VegaSystems

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

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

Excel-VBA 処理速度を上げる

ExcelVBA]での処理速度を上げる簡単な方法。
Sheetを切り替えての処理の場合、Sheetの描画に時間とPowerを使います。
以下の一行をSourceに入れておけばOKです。
画像を表示させない命令です。

Application.ScreenUpdating = False



わかお かずまさ
VegaSystems

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

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

Excel-VBA Call文での変数渡し

ExcelVBAでのCall文での変数の引き渡し

Call文を呼び出す場合、()内に変数を指定して渡さないと、引き継ぎが
出来ません。プログラムの素養があればわかることですが、初めての方には
理解出来ない部分です。

以下 Source

Loopの中で、Graph()をCallしています、この時Sheet名を渡しています。
Sourceは2つあり、後半が呼び出される部分です。


Sub CREATE_Graph()
'
' CREATE_Graph Macro

Dim i As Long

Dim She_nam As String


Application.ScreenUpdating = False


For i = 1 To 31



Sheets("SKD1-A").Select

Range(Cells(7, i + 2), Cells(56, i + 2)).Select

Selection.Copy

If i < 10 Then

She_nam = "SKD2-0" & Right(Val(i), 2)

Else

She_nam = "SKD2-" & Right(Val(i), 2)

End If

' Debug.Print She_nam

Sheets(She_nam).Select

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


Call Graph(She_nam)



Next i

Range("A1").Select


Sheets("SKD1-A").Select

Range("A1").Select

End Sub

'
End Sub

-----------------------------------------------------
Sub Graph(S_nam)
'
' Macro3 Macro
'

'Shiftの勤務時間を横棒グラフに展開する


Sheets(S_nam).Select
ActiveWindow.SmallScroll Down:=-6



Dim Cnt As Double
Dim Haji_n As Double
Dim Naga_n As Double

Dim X_n As Double
Dim Xe_n As Double
Dim Y_n As Double

Dim Jikan As String '設定勤務時間
Dim Haji As String '開始時刻
Dim Naga As String '仕事時間


'----------------------------
'グラフ画面の初期化

Range("D4:AN53").Select

With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Selection.ClearContents
'-----------------------------




For i = 1 To 50


Y_n = i + 3

Jikan = Cells(Y_n, 3)

If Val(Jikan) = 0 Then
GoTo Continue '未記入はPASS
End If

Cnt = InStr(Jikan, "+") '+の位置の検出

Haji = Left(Jikan, Cnt - 1)
Haji_n = Val(Haji)


If Haji_n < 6 Then
Haji_n = 6 '6時以前は6時にfix
End If

Haji_n = Haji_n * 2 'グラフの長さのため2倍に

X_n = Haji_n - 8

Naga = Mid(Jikan, Cnt + 1)
Naga_n = Val(Naga) * 2

Xe_n = Naga_n + Haji_n - 8

If Xe_n > 40 Then
Xe_n = 40 '24時以降は24時に
End If


'Debug.Print Haji_n
'Debug.Print Haji_n - 8

'Debug.Print Naga_n
'Debug.Print Naga_n + Haji_n
'Debug.Print Naga_n + Haji_n - 8

'Debug.Print Y_n
'Debug.Print X_n
'Debug.Print Xe_n

''------------------------------------------------
'勤務時間横グラフ作成

Cells(Y_n, X_n) = Naga_n / 2 '勤務時間を先頭に記入

Range(Cells(Y_n, X_n), Cells(Y_n, Xe_n - 1)).Select

With Selection.Interior

.Pattern = xlSolid
.PatternColorIndex = xlAutomatic

' .Color = 5296274

' .ColorIndex = 42

' Debug.Print Haji_n

Select Case Haji_n '勤務開始時刻で色を決める

Case Is < 24

.ColorIndex = 42

Case 23 To 36

.ColorIndex = 44

Case Is > 35

.ColorIndex = 26

Case Else

.ColorIndex = 3


End Select

.TintAndShade = 0
.PatternTintAndShade = 0

End With
'------------------------------------------

Continue:

Next

End Sub



わかお かずまさ
VegaSystems

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

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

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