Sub CommentSample() ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'このマクロの全体の流れ: ' ' [1] 名前を氏名で分割して、 C 列、 D 列に書き込む ' ' [2] 一般社員だったら、 E 列の見せ方を変える ' ' [3] 各行の合計を計算して M 列に書き込む ' ' [4] 数値全体の見せ方を変える ' ' ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim c As Long 'ForNext構文で使う、カウンター用の変数 Dim cMx As Long 'ForNext構文のカウンター最大値を決定する変数 Dim st As String '氏名を取ってきて格納する変数 Dim i As Integer '氏名の中で半角スペースを見つけ、変数 i に格納する
st = Range("B" & c).Value i = InStr(st, " ") '苗字と名前の間が全角スペースのときについてはまだ対応していないので注意! Range("B" & c).Offset(, 1).Value = Left(st, i - 1) Range("B" & c).Offset(, 2).Value = Mid(st, i + 1) Next
For c = 4 To cMx If Range("E" & c).Value = "一般社員" Then 'もしも、E列が一般社員だったら Range("E" & c).Font.Color = vbRed '←あとで、別の色にすること! Range("E" & c).Font.Bold = True End If Next
'↓作りかけたけど、ちゃんと動かなかったのであとまわし。 ' For c = 4 To cMx ' Range("M" & c).Value = Range("G" & c).Value Range("H" & c).Value + Range("I" & c).Value + Range("J" & c).Value + Range("K" & c).Value + Range("L" & c).Value ' Next
For c = 4 To cMx Range("M" & c).Value = WorksheetFunction.Sum(Range("G" & c & ":L" & c)) Next
井上 聡さんの投稿
(投稿ID: 1173)
kiso01-daihon0031のサンプルコード下から3行目がよくわかりません。特にこの部分 "_ * #,##0.0_ ;_ * -#,##0.0_ ;_ * ""-""?_ ;_ @_ "の意味について説明お願いします。数値の全体の見せ方は良く利用できそうです。もっと簡単にできる表示する方法がありませんでしょうか。
Sub CommentSample()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'このマクロの全体の流れ: '
' [1] 名前を氏名で分割して、 C 列、 D 列に書き込む '
' [2] 一般社員だったら、 E 列の見せ方を変える '
' [3] 各行の合計を計算して M 列に書き込む '
' [4] 数値全体の見せ方を変える '
' '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim c As Long 'ForNext構文で使う、カウンター用の変数
Dim cMx As Long 'ForNext構文のカウンター最大値を決定する変数
Dim st As String '氏名を取ってきて格納する変数
Dim i As Integer '氏名の中で半角スペースを見つけ、変数 i に格納する
cMx = Range("A65536").End(xlUp).Row '←ここ、ちゃんと書けている自信ない (--;
For c = 4 To cMx
st = Range("B" & c).Value
i = InStr(st, " ") '苗字と名前の間が全角スペースのときについてはまだ対応していないので注意!
Range("B" & c).Offset(, 1).Value = Left(st, i - 1)
Range("B" & c).Offset(, 2).Value = Mid(st, i + 1)
Next
For c = 4 To cMx
If Range("E" & c).Value = "一般社員" Then 'もしも、E列が一般社員だったら
Range("E" & c).Font.Color = vbRed '←あとで、別の色にすること!
Range("E" & c).Font.Bold = True
End If
Next
'↓作りかけたけど、ちゃんと動かなかったのであとまわし。
' For c = 4 To cMx
' Range("M" & c).Value = Range("G" & c).Value Range("H" & c).Value + Range("I" & c).Value + Range("J" & c).Value + Range("K" & c).Value + Range("L" & c).Value
' Next
For c = 4 To cMx
Range("M" & c).Value = WorksheetFunction.Sum(Range("G" & c & ":L" & c))
Next
'数値全体の見せ方を変える。(ネットからパクってきた。ネタ元: http://www.exvba.com/hoge/... )
Range("G4:M" & cMx).NumberFormatLocal = "_ * #,##0.0_ ;_ * -#,##0.0_ ;_ * ""-""?_ ;_ @_ "
End Sub
ゲストさんのコメント
(コメントID: 2356)
ここでは、コメントの活用法についてだけ理解してください。
> kiso01-daihon0031のサンプルコード下から3行目がよくわかりません。
基礎編レベルでは分からなくていいです。ていうか、僕もいまだに分かりません(し、興味もありません)。
"_ * #,##0.0_ ;_ * -#,##0.0_ ;_ * ""-""?_ ;_ @_ "
の部分は、自動記録しながらセルの書式を変更すれば再現できます。
自動記録のやりかたについては導入編で解説しましたので、何かあればあちらのほうで。