パソコン仕事5倍塾
35,000人を指導した東大卒・元日本IBM社内講師が直伝
MENU
明石 照伸さんの投稿
(投稿ID: 443)
小川慶一さんのコメント
(コメントID: 1253)
外部アカウントで登録
たった1ヶ月で人生が劇的に変わりました
佐藤信さん
役員クラスの方から高い評価を受けるようになりました。
佐賀県 - 岩本徹さん
今までまったく知らなかったショートカットキーを使いまくっています。
東京都 - 鷹觜慶さん
年齢60才間近、営業で外回りの時間が多い私でも退社時間が1-2時間程度早くなりました。
東京都 - 宗内隆明さん
受講前もすでにパソコン得意でしたが、そんな私でも受講して本当に良かったと思えた講座です。
東京都 - 佐伯とも子さん
ここまで包括的に仕事に役立つ深い学びを受けれた講座は初めてでした
東京都 - 飯田倫子さん
2024年04月27日 15:36
2024年04月25日 07:00
2024年04月23日 21:36
2024年04月23日 10:01
2024年04月22日 03:23
2024年04月28日 20:53
2024年04月28日 19:20
2024年04月28日 15:34
2024年04月28日 12:07
2024年04月28日 11:43
2022年02月24日 10:59
2019年12月23日 05:57
2019年09月20日 12:29
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
2022年02月02日 00:00
2022年02月02日 03:00
2022年02月02日 06:00
2022年02月02日 09:00
2022年02月02日 12:00
2024年02月15日 18:30
2024年02月09日 17:05
2024年01月19日 13:00
2023年12月31日 17:00
2023年12月21日 14:00
2024年04月27日 23:02
2024年02月28日 14:53
2024年02月27日 14:27
2024年02月27日 14:21
2024年02月27日 14:15
明石 照伸さんの投稿
(投稿ID: 443)
問題をここまでやらせていただいて
ようやくFor~Nextがわかってきた
ようです。
まず最初考えた回答が、以下のような
ベタベタのコードでした。
---回答(1)ここから---------------------------------------------
Sub shiharai()
Dim kekkon
kekkon = 0
Dim shussan
shussan = 0
Dim seijin
seijin = 0
Dim reizen
reizen = 0
Dim mimai
mimai = 0
Dim jimu
jimu = 0
Dim gyo
For gyo = 4 To 9
If Range("i" & gyo).Value = "結婚祝い" Then
kekkon = kekkon + Range("j" & gyo).Value
ElseIf Range("i" & gyo).Value = "出産祝い" Then
shussan = shussan + Range("j" & gyo).Value
ElseIf Range("i" & gyo).Value = "成人祝い" Then
seijin = seijin + Range("j" & gyo).Value
ElseIf Range("i" & gyo).Value = "御霊前" Then
reizen = reizen + Range("j" & gyo).Value
ElseIf Range("i" & gyo).Value = "お見舞い" Then
mimai = mimai + Range("j" & gyo).Value
Else
jimu = jimu + Range("j" & gyo).Value
End If
Next
Range("d4").Value = kekkon
Range("e4").Value = kekkon + Range("c4").Value
Range("d5").Value = shussan
Range("e5").Value = shussan + Range("c5").Value
Range("d6").Value = seijin
Range("e6").Value = seijin + Range("c6").Value
Range("d7").Value = reizen
Range("e7").Value = reizen + Range("c7").Value
Range("d8").Value = mimai
Range("e8").Value = mimai + Range("c8").Value
Range("d9").Value = jimu
Range("e9").Value = jimu + Range("c9").Value
Dim kongetu
kongetsu = 0
Dim ruikei
ruikei = 0
For gyo = 4 To 9
kongetsu = kongetsu + Range("d" & gyo).Value
ruikei = ruikei + Range("e" & gyo).Value
Next
Range("d10").Value = kongetsu
Range("e10").Value = ruikei
End Sub
---回答(1)ここまで------------------------------------------------
この回答を書いた後で、もっとすっきりまとめられることに
気づき書いたのが以下になります。
---回答(2)ここから------------------------------------------------
Sub shiwake2()
Dim keihi
Dim gyo_hidari
Dim gyo_migi
For gyo_hidari = 4 To 9
keihi = 0
For gyo_migi = 4 To 9
If Range("i" & gyo_migi).Value = Range("b" & gyo_hidari).Value Then
keihi = keihi + Range("j" & gyo_migi).Value
ElseIf Range("h" & gyo_migi).Value = Range("b" & gyo_hidari).Value Then
keihi = keihi + Range("j" & gyo_migi).Value
End If
Next
Range("d" & gyo_hidari).Value = keihi
Range("e" & gyo_hidari).Value = Range("c" & gyo_hidari).Value + Range("d" & gyo_hidari).Value
Range("d10").Value = Range("d10").Value + Range("d" & gyo_hidari).Value
Range("e10").Value = Range("e10").Value + Range("e" & gyo_hidari).Value
Next
End Sub
---回答(2)ここまで------------------------------------------------
この考え方になじんでからは、実務で新旧の表を比較して差分を抽出したり、
といった、今までVLOOKUP関数で行っていたような複数の表にまたがる処理が
マクロでできるようになりました。
一回限りの書き捨てのマクロでデータ整合性チェックをしたり
ができるので相当作業時間を短縮できていると思います。なれると関数より楽に、
かつ、もっと複雑な処理ができますね。もっとマクロを学ぶことで仕事自体が
劇的に変わっていく予感がしています。(^^
小川慶一さんのコメント
(コメントID: 1253)
> もっとマクロを学ぶことで仕事自体が劇的に変わっていく予感がしています。(^^
そうですよー。じゃなきゃ、こんな手間書けてマクロ教えません。
それだけインパクトのデカい技術です。ぜひ、ますますしっかりとモノにしてください!!